fusuma-plugin-keypress 0.1.0 → 0.4.0.pre

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
  SHA256:
3
- metadata.gz: 5ac6defa566a26b20d4df701ed11054d7c18f7a160cd4920ed5507b310c6eadd
4
- data.tar.gz: 3b5f4bca453556923f27688886ecbe41b32c0b144474f7ffe4501373b3c9799e
3
+ metadata.gz: bf01d5bb0635029913f1c7fa172d65f6bd7ebaa184bf2c7bf7a374e6c58edec6
4
+ data.tar.gz: 6aa537cc3c9717d1ad0f913ada4487f20d44915892b1517c5f1c9aeb61571867
5
5
  SHA512:
6
- metadata.gz: dd261eb913cad03aa7245b6ef21772b668818e1d654f630f5d118f43591e4edaec698d67f36b595aa0553e36b988e227cf3b97aa8b4299c72d85b0a7f17706d6
7
- data.tar.gz: 484c87be4cf79c6af3871691c6f3286034fe8b8d41a8a868673ad2e7cd1f0922cb3f553e4263a291aea1e8672d1d69ccffa2768022e176d90bd53c89b4d33c63
6
+ metadata.gz: 1a2fc9a98ae8f36c88a46dd35caa917a37b6bf059faf9dae7911813dfe837ee55f9e07ffbb5b7ebb2bb656c7c16a1ff3b3cd2743a391d0385c486039508237d5
7
+ data.tar.gz: 3e52a0c29351c21422e499a3803b32f20416888be23811a606f115cd21e6286e5eb2f7c19bded0fae339d7335e90d72479476495888677430e211485c60ee465
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ .ruby-version
@@ -1,3 +1,7 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.4
3
+ NewCops: enable
4
+
1
5
  Metrics/ModuleLength:
2
6
  Exclude:
3
7
  - "**/*_spec.rb"
@@ -0,0 +1,10 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.3.1
7
+ - 2.4
8
+ - 2.5
9
+ - 2.6
10
+ before_install: gem install bundler --no-document -v 2.0.1
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.1.1](https://github.com/iberianpig/fusuma-plugin-keypress/tree/v0.1.1) (2020-02-18)
4
+ [Full Changelog](https://github.com/iberianpig/fusuma-plugin-keypress/compare/v0.1.0...v0.1.1)
5
+
6
+ ## [v0.1.0](https://github.com/iberianpig/fusuma-plugin-keypress/tree/v0.1.0) (2019-11-12)
3
7
 
4
8
 
5
9
  \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -4,3 +4,15 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in fusuma-plugin-keypress.gemspec
6
6
  gemspec
7
+
8
+ gem 'bundler'
9
+ gem 'github_changelog_generator'
10
+ gem 'lefthook'
11
+ gem 'pry-byebug', '~> 3.4'
12
+ gem 'pry-doc'
13
+ gem 'pry-inline'
14
+ gem 'rake', '~> 13.0'
15
+ gem 'reek'
16
+ gem 'rspec', '~> 3.0'
17
+ gem 'rubocop'
18
+ gem 'yard'
data/README.md CHANGED
@@ -1,44 +1,42 @@
1
1
  # Fusuma::Plugin::Keypress [![Gem Version](https://badge.fury.io/rb/fusuma-plugin-keypress.svg)](https://badge.fury.io/rb/fusuma-plugin-keypress) [![Build Status](https://travis-ci.com/iberianpig/fusuma-plugin-keypress.svg?branch=master)](https://travis-ci.com/iberianpig/fusuma-plugin-keypress)
2
2
 
3
3
 
4
- Keypress combination plugin for [Fusuma](https://github.com/iberianpig/fusuma)
4
+ Keyboard + Touchpad combination plugin for [Fusuma](https://github.com/iberianpig/fusuma)
5
+
6
+ * Customize gestures with modifier keys
7
+ * Supports multiple modifier key combinations
5
8
 
6
9
  ## Installation
7
10
 
8
11
  Run the following code in your terminal.
9
12
 
10
- ### Install libinput-tools
11
-
12
- ```sh
13
- $ sudo apt-get install libinput-tools
14
- ```
15
-
16
13
  ### Install fusuma-plugin-keypress
17
14
 
18
- This plugin requires [Fusuma](https://github.com/iberianpig/fusuma#update) version 1.3 or later.
15
+ This plugin requires [Fusuma](https://github.com/iberianpig/fusuma#update) version 1.4 or later.
19
16
 
20
17
  ```sh
21
- $ gem install fusuma-plugin-keypress
18
+ $ sudo gem install fusuma-plugin-keypress
22
19
  ```
23
20
 
24
- ### Add show-keycode option
21
+ ### Add show-keycodes option
25
22
 
26
- Modify ~/.config/fusuma following
23
+ Open `~/.config/fusuma/config.yml` and add the following code at the bottom.
27
24
 
28
25
  ```yaml
29
- plugin:
26
+ plugin:
30
27
  inputs:
31
28
  libinput_command_input:
32
- show-keycode: true
29
+ show-keycodes: true
33
30
  ```
34
31
 
35
- **NOTE: fusuma can read your keyboard inputs if show-keycode option is true**
32
+ **NOTE: fusuma can read your keyboard inputs if show-keycodes option is true**
36
33
 
37
34
  ## Properties
38
35
 
39
36
  Add `keypress:` property in `~/.config/fusuma/config.yml`.
40
37
 
41
38
  Keys following are available for `keypress`.
39
+
42
40
  * `CAPSLOCK`
43
41
  * `LEFTALT`
44
42
  * `LEFTCTRL`
@@ -70,11 +68,16 @@ swipe:
70
68
  command: 'xdotool key --clearmodifiers XF86MonBrightnessDown'
71
69
  LEFTMETA+LEFTALT:
72
70
  command: 'xdotool key --clearmodifiers XF86AudioLowerVolume'
71
+
72
+ plugin:
73
+ inputs:
74
+ libinput_command_input:
75
+ show-keycodes: true
73
76
  ```
74
77
 
75
78
  * Swipe up/down with four fingers while keypress LEFTMETA key to change display brightnes .
76
79
  * Swipe up/down with four fingers while keypress LEFTMETA and LEFTALT keys to change audio volume.
77
- - If you want to combine a gesture with two keys, combine modifier keys with `+`
80
+ - If you want to combine a gesture with two keys, combine modifier keys with `+`
78
81
 
79
82
  ## Contributing
80
83
 
@@ -24,17 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
 
27
- spec.required_ruby_version = '>= 2.3' # https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all&section=main
28
- spec.add_dependency 'fusuma', '~> 1.3'
29
-
30
- spec.add_development_dependency 'bundler'
31
- spec.add_development_dependency 'github_changelog_generator', '~> 1.14'
32
- spec.add_development_dependency 'pry-byebug', '~> 3.4'
33
- spec.add_development_dependency 'pry-doc'
34
- spec.add_development_dependency 'pry-inline'
35
- spec.add_development_dependency 'rake', '~> 13.0'
36
- spec.add_development_dependency 'reek'
37
- spec.add_development_dependency 'rspec', '~> 3.0'
38
- spec.add_development_dependency 'rubocop'
39
- spec.add_development_dependency 'yard'
27
+ spec.required_ruby_version = '>= 2.4' # https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all&section=main
28
+ spec.add_dependency 'fusuma', '~> 2.0.0.pre'
40
29
  end
@@ -0,0 +1,29 @@
1
+ # EXAMPLE USAGE
2
+ # Refer for explanation to following link:
3
+ # https://github.com/Arkweid/lefthook/blob/master/docs/full_guide.md
4
+
5
+ # pre-push:
6
+ # commands:
7
+ # packages-audit:
8
+ # tags: frontend security
9
+ # run: yarn audit
10
+ # gems-audit:
11
+ # tags: backend security
12
+ # run: bundle audit
13
+
14
+ pre-commit:
15
+ parallel: true
16
+ commands:
17
+ # eslint:
18
+ # glob: "*.{js,ts}"
19
+ # run: yarn eslint {staged_files}
20
+ rubocop:
21
+ tags: backend style
22
+ glob: "*.rb"
23
+ # exclude: "application.rb|routes.rb"
24
+ run: bundle exec rubocop --force-exclusion {staged_files}
25
+ # scripts:
26
+ # "hello.js":
27
+ # runner: node
28
+ # "any.go":
29
+ # runner: go run
@@ -12,7 +12,15 @@ module Fusuma
12
12
  return if event&.tag != source
13
13
 
14
14
  @events.push(event)
15
- @events.clear if released?
15
+ end
16
+
17
+ def clear_expired(*)
18
+ return if @events.empty?
19
+
20
+ return unless released?
21
+
22
+ released_code = @events.last.record.code
23
+ @events.delete_if { |e| e.record.code == released_code }
16
24
  end
17
25
 
18
26
  def empty?
@@ -7,7 +7,7 @@ module Fusuma
7
7
  class KeypressDetector < Detector
8
8
  BUFFER_TYPE = 'keypress'
9
9
 
10
- # @param buffers [Array<Buffer>]
10
+ # @param buffers [Array<Event>]
11
11
  # @return [Event] if event is detected
12
12
  # @return [NilClass] if event is NOT detected
13
13
  def detect(buffers)
@@ -15,14 +15,15 @@ module Fusuma
15
15
 
16
16
  return if buffer.empty?
17
17
 
18
- records = buffer.events.map(&:record)
19
-
20
- index = create_index(records: records)
18
+ records = buffer.events.select do |e|
19
+ e.record.status == 'pressed'
20
+ end.map(&:record)
21
21
 
22
22
  index_record = Events::Records::IndexRecord.new(
23
- index: index,
23
+ index: create_index(records: records),
24
24
  position: :surfix
25
25
  )
26
+
26
27
  create_event(record: index_record)
27
28
  end
28
29
 
@@ -3,7 +3,7 @@
3
3
  module Fusuma
4
4
  module Plugin
5
5
  module Keypress
6
- VERSION = '0.1.0'
6
+ VERSION = '0.4.0.pre'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusuma-plugin-keypress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.4.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - iberianpig
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-12 00:00:00.000000000 Z
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fusuma
@@ -16,154 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: 2.0.0.pre
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: github_changelog_generator
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.14'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.14'
55
- - !ruby/object:Gem::Dependency
56
- name: pry-byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.4'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.4'
69
- - !ruby/object:Gem::Dependency
70
- name: pry-doc
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-inline
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '13.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '13.0'
111
- - !ruby/object:Gem::Dependency
112
- name: reek
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '3.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.0'
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: yard
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
26
+ version: 2.0.0.pre
167
27
  description: fusuma-plugin-keypress is Fusuma plugin for keypress combination.
168
28
  email:
169
29
  - yhkyky@gmail.com
@@ -173,6 +33,7 @@ extra_rdoc_files: []
173
33
  files:
174
34
  - ".gitignore"
175
35
  - ".rubocop.yml"
36
+ - ".travis.yml"
176
37
  - CHANGELOG.md
177
38
  - CODE_OF_CONDUCT.md
178
39
  - Gemfile
@@ -182,6 +43,7 @@ files:
182
43
  - bin/console
183
44
  - bin/setup
184
45
  - fusuma-plugin-keypress.gemspec
46
+ - lefthook.yml
185
47
  - lib/fusuma/plugin/buffers/keypress_buffer.rb
186
48
  - lib/fusuma/plugin/detectors/keypress_detector.rb
187
49
  - lib/fusuma/plugin/events/records/keypress_record.rb
@@ -193,7 +55,7 @@ homepage: https://github.com/iberianpig/fusuma-plugin-keypress
193
55
  licenses:
194
56
  - MIT
195
57
  metadata: {}
196
- post_install_message:
58
+ post_install_message:
197
59
  rdoc_options: []
198
60
  require_paths:
199
61
  - lib
@@ -201,15 +63,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
63
  requirements:
202
64
  - - ">="
203
65
  - !ruby/object:Gem::Version
204
- version: '2.3'
66
+ version: '2.4'
205
67
  required_rubygems_version: !ruby/object:Gem::Requirement
206
68
  requirements:
207
- - - ">="
69
+ - - ">"
208
70
  - !ruby/object:Gem::Version
209
- version: '0'
71
+ version: 1.3.1
210
72
  requirements: []
211
- rubygems_version: 3.0.3
212
- signing_key:
73
+ rubygems_version: 3.1.4
74
+ signing_key:
213
75
  specification_version: 4
214
76
  summary: Keypress plugin for Fusuma
215
77
  test_files: []