fusuma-plugin-keypress 0.1.0 → 0.4.0.pre

Sign up to get free protection for your applications and to get access to all the features.
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: []