fusuma-plugin-wmctrl 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fusuma-plugin-wmctrl.gemspec +2 -4
- data/lib/fusuma/plugin/wmctrl/version.rb +1 -1
- data/spec/fusuma/plugin/plugin/executors/wmctrl_executor_spec.rb +476 -0
- data/spec/fusuma/plugin/wmctrl_spec.rb +9 -0
- data/spec/helpers/config_helper.rb +16 -0
- data/spec/spec_helper.rb +18 -0
- metadata +11 -12
- data/.gitignore +0 -12
- data/.rspec +0 -3
- data/.rubocop.yml +0 -15
- data/.rubocop_todo.yml +0 -20
- data/.travis.yml +0 -10
- data/CHANGELOG.md +0 -33
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -17
- data/Rakefile +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be4879e5eb3aa9c3db5c366947afdaaf4e88c0ce883976dec7f67175fee10a0b
|
4
|
+
data.tar.gz: dda7a911dcd37e050886f9265b98a876d01558ce718817d787ecb1d13b20923b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83cbb9dfef7b628b29e48576eaab00ff59a6573ac8fe514e9d802699dfc1469fc91ccd6fb1bdcaf59f2691d2273a02295b936ac60807192783563323eb4b67b0
|
7
|
+
data.tar.gz: 606efefee934e4681f83dda6960450fd533f577d31bc11c893f541fb9582432e886b762ae962f18ef429913d35358c3fc10fabdf9004b4c4b345374ea1bc8e07
|
@@ -16,10 +16,8 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
|
-
|
20
|
-
spec.
|
21
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
|
-
end
|
19
|
+
spec.files = Dir['{bin,lib,exe}/**/*', 'LICENSE*', 'README*', '*.gemspec']
|
20
|
+
spec.test_files = Dir['{test,spec,features}/**/*']
|
23
21
|
spec.bindir = 'exe'
|
24
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
23
|
spec.require_paths = ['lib']
|
@@ -0,0 +1,476 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
require 'fusuma/plugin/executors/executor'
|
6
|
+
require 'fusuma/plugin/events/event'
|
7
|
+
require 'fusuma/plugin/events/records/index_record'
|
8
|
+
|
9
|
+
require './lib/fusuma/plugin/executors/wmctrl_executor'
|
10
|
+
|
11
|
+
module Fusuma
|
12
|
+
module Plugin
|
13
|
+
module Executors
|
14
|
+
RSpec.describe WmctrlExecutor do
|
15
|
+
before do
|
16
|
+
index = Config::Index.new([:dummy, 1, :direction])
|
17
|
+
record = Events::Records::IndexRecord.new(index: index)
|
18
|
+
@event = Events::Event.new(tag: 'dummy_detector', record: record)
|
19
|
+
@executor = WmctrlExecutor.new
|
20
|
+
|
21
|
+
@default_workspace_num = 1
|
22
|
+
allow(WmctrlExecutor::Workspace)
|
23
|
+
.to receive(:workspace_values)
|
24
|
+
.and_return(@default_workspace_num)
|
25
|
+
end
|
26
|
+
|
27
|
+
around do |example|
|
28
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
29
|
+
dummy:
|
30
|
+
1:
|
31
|
+
direction:
|
32
|
+
workspace: 'prev'
|
33
|
+
CONFIG
|
34
|
+
|
35
|
+
example.run
|
36
|
+
|
37
|
+
Config.custom_path = nil
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#execute' do
|
41
|
+
it 'detach' do
|
42
|
+
pid = rand(20)
|
43
|
+
allow(POSIX::Spawn)
|
44
|
+
.to receive(:spawn).with(@executor.search_command(@event))
|
45
|
+
.and_return pid
|
46
|
+
|
47
|
+
expect(Process).to receive(:detach).with(pid)
|
48
|
+
|
49
|
+
@executor.execute(@event)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#executable?' do
|
54
|
+
context 'when given valid event tagged as xxxx_detector' do
|
55
|
+
it { expect(@executor.executable?(@event)).to be_truthy }
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when given INVALID event tagged as invalid_tag' do
|
59
|
+
before do
|
60
|
+
@event.tag = 'invalid_tag'
|
61
|
+
end
|
62
|
+
it { expect(@executor.executable?(@event)).to be_falsey }
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#search_command' do
|
67
|
+
|
68
|
+
context "when workspace: 'prev'" do
|
69
|
+
around do |example|
|
70
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
71
|
+
dummy:
|
72
|
+
1:
|
73
|
+
direction:
|
74
|
+
workspace: 'prev'
|
75
|
+
CONFIG
|
76
|
+
|
77
|
+
example.run
|
78
|
+
|
79
|
+
Config.custom_path = nil
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should return wmctrl command' do
|
83
|
+
expect(@executor.search_command(@event))
|
84
|
+
.to match(/wmctrl -s #{@default_workspace_num - 1}/)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context "when workspace: 'next'" do
|
89
|
+
around do |example|
|
90
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
91
|
+
dummy:
|
92
|
+
1:
|
93
|
+
direction:
|
94
|
+
workspace: 'next'
|
95
|
+
CONFIG
|
96
|
+
|
97
|
+
example.run
|
98
|
+
|
99
|
+
Config.custom_path = nil
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'should return wmctrl command' do
|
103
|
+
expect(@executor.search_command(@event))
|
104
|
+
.to match(/wmctrl -s #{@default_workspace_num + 1}/)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context "when window: 'prev'" do
|
109
|
+
around do |example|
|
110
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
111
|
+
dummy:
|
112
|
+
1:
|
113
|
+
direction:
|
114
|
+
window: 'prev'
|
115
|
+
CONFIG
|
116
|
+
|
117
|
+
example.run
|
118
|
+
|
119
|
+
Config.custom_path = nil
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'should return wmctrl command' do
|
123
|
+
expect(@executor.search_command(@event))
|
124
|
+
.to match(/wmctrl -r :ACTIVE: -t #{@default_workspace_num - 1}/)
|
125
|
+
expect(@executor.search_command(@event))
|
126
|
+
.to match(/wmctrl -s #{@default_workspace_num - 1}/)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
context "when window: 'next'" do
|
131
|
+
around do |example|
|
132
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
133
|
+
dummy:
|
134
|
+
1:
|
135
|
+
direction:
|
136
|
+
window: 'next'
|
137
|
+
CONFIG
|
138
|
+
|
139
|
+
example.run
|
140
|
+
|
141
|
+
Config.custom_path = nil
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should return wmctrl command' do
|
145
|
+
expect(@executor.search_command(@event))
|
146
|
+
.to match(/wmctrl -r :ACTIVE: -t #{@default_workspace_num + 1}/)
|
147
|
+
expect(@executor.search_command(@event))
|
148
|
+
.to match(/wmctrl -s #{@default_workspace_num + 1}/)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
context "when window: 'fullscreen'" do
|
153
|
+
around do |example|
|
154
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
155
|
+
dummy:
|
156
|
+
1:
|
157
|
+
direction:
|
158
|
+
window: 'fullscreen'
|
159
|
+
CONFIG
|
160
|
+
|
161
|
+
example.run
|
162
|
+
|
163
|
+
Config.custom_path = nil
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'should return wmctrl command' do
|
167
|
+
expect(@executor.search_command(@event))
|
168
|
+
.to match(/wmctrl -r :ACTIVE: -b toggle,fullscreen/)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
context 'when window: [fullscreen: something]' do
|
173
|
+
context "when fullscreen: 'toggle'" do
|
174
|
+
around do |example|
|
175
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
176
|
+
dummy:
|
177
|
+
1:
|
178
|
+
direction:
|
179
|
+
window:
|
180
|
+
fullscreen: 'toggle'
|
181
|
+
CONFIG
|
182
|
+
|
183
|
+
example.run
|
184
|
+
|
185
|
+
Config.custom_path = nil
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'should return wmctrl command' do
|
189
|
+
expect(@executor.search_command(@event))
|
190
|
+
.to match(/wmctrl -r :ACTIVE: -b toggle,fullscreen/)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
context "when fullscreen: 'add'" do
|
195
|
+
around do |example|
|
196
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
197
|
+
dummy:
|
198
|
+
1:
|
199
|
+
direction:
|
200
|
+
window:
|
201
|
+
fullscreen: 'add'
|
202
|
+
CONFIG
|
203
|
+
|
204
|
+
example.run
|
205
|
+
|
206
|
+
Config.custom_path = nil
|
207
|
+
end
|
208
|
+
|
209
|
+
it 'should return wmctrl command' do
|
210
|
+
expect(@executor.search_command(@event))
|
211
|
+
.to match(/wmctrl -r :ACTIVE: -b add,fullscreen/)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
context "when fullscreen: 'remove'" do
|
216
|
+
around do |example|
|
217
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
218
|
+
dummy:
|
219
|
+
1:
|
220
|
+
direction:
|
221
|
+
window:
|
222
|
+
fullscreen: 'remove'
|
223
|
+
CONFIG
|
224
|
+
|
225
|
+
example.run
|
226
|
+
|
227
|
+
Config.custom_path = nil
|
228
|
+
end
|
229
|
+
|
230
|
+
it 'should return wmctrl command' do
|
231
|
+
expect(@executor.search_command(@event))
|
232
|
+
.to match(/wmctrl -r :ACTIVE: -b remove,fullscreen/)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
context "when window: 'maximized'" do
|
238
|
+
around do |example|
|
239
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
240
|
+
dummy:
|
241
|
+
1:
|
242
|
+
direction:
|
243
|
+
window: 'maximized'
|
244
|
+
CONFIG
|
245
|
+
|
246
|
+
example.run
|
247
|
+
|
248
|
+
Config.custom_path = nil
|
249
|
+
end
|
250
|
+
|
251
|
+
it 'should return wmctrl command' do
|
252
|
+
expect(@executor.search_command(@event))
|
253
|
+
.to match(/wmctrl -r :ACTIVE: -b toggle,maximized/)
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
context 'when window: [maximized: something]' do
|
258
|
+
context "when maximized: 'toggle'" do
|
259
|
+
around do |example|
|
260
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
261
|
+
dummy:
|
262
|
+
1:
|
263
|
+
direction:
|
264
|
+
window:
|
265
|
+
maximized: 'toggle'
|
266
|
+
CONFIG
|
267
|
+
|
268
|
+
example.run
|
269
|
+
|
270
|
+
Config.custom_path = nil
|
271
|
+
end
|
272
|
+
|
273
|
+
it 'should return wmctrl command' do
|
274
|
+
expect(@executor.search_command(@event))
|
275
|
+
.to match(/wmctrl -r :ACTIVE: -b toggle,maximized/)
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
context "when maximized: 'add'" do
|
280
|
+
around do |example|
|
281
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
282
|
+
dummy:
|
283
|
+
1:
|
284
|
+
direction:
|
285
|
+
window:
|
286
|
+
maximized: 'add'
|
287
|
+
CONFIG
|
288
|
+
|
289
|
+
example.run
|
290
|
+
|
291
|
+
Config.custom_path = nil
|
292
|
+
end
|
293
|
+
|
294
|
+
it 'should return wmctrl command' do
|
295
|
+
expect(@executor.search_command(@event))
|
296
|
+
.to match(/wmctrl -r :ACTIVE: -b add,maximized/)
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
context "when maximized: 'remove'" do
|
301
|
+
around do |example|
|
302
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
303
|
+
dummy:
|
304
|
+
1:
|
305
|
+
direction:
|
306
|
+
window:
|
307
|
+
maximized: 'remove'
|
308
|
+
CONFIG
|
309
|
+
|
310
|
+
example.run
|
311
|
+
|
312
|
+
Config.custom_path = nil
|
313
|
+
end
|
314
|
+
|
315
|
+
it 'should return wmctrl command' do
|
316
|
+
expect(@executor.search_command(@event))
|
317
|
+
.to match(/wmctrl -r :ACTIVE: -b remove,maximized/)
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
321
|
+
context "when window: 'close'" do
|
322
|
+
around do |example|
|
323
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
324
|
+
dummy:
|
325
|
+
1:
|
326
|
+
direction:
|
327
|
+
window: 'close'
|
328
|
+
CONFIG
|
329
|
+
|
330
|
+
example.run
|
331
|
+
|
332
|
+
Config.custom_path = nil
|
333
|
+
end
|
334
|
+
|
335
|
+
it 'should return wmctrl command' do
|
336
|
+
expect(@executor.search_command(@event))
|
337
|
+
.to match(/wmctrl -c :ACTIVE:/)
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
describe 'wrap_navigation: true' do
|
342
|
+
|
343
|
+
context "when workspace: 'prev' and current workspace 0" do
|
344
|
+
around do |example|
|
345
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
346
|
+
dummy:
|
347
|
+
1:
|
348
|
+
direction:
|
349
|
+
workspace: 'prev'
|
350
|
+
plugin:
|
351
|
+
executors:
|
352
|
+
wmctrl_executor:
|
353
|
+
wrap-navigation: true
|
354
|
+
CONFIG
|
355
|
+
|
356
|
+
example.run
|
357
|
+
|
358
|
+
Config.custom_path = nil
|
359
|
+
end
|
360
|
+
|
361
|
+
it 'should return wmctrl command with an index last workspace' do
|
362
|
+
current_workspace = 0
|
363
|
+
total_workspaces = 3
|
364
|
+
|
365
|
+
allow(WmctrlExecutor::Workspace)
|
366
|
+
.to receive(:workspace_values)
|
367
|
+
.and_return([current_workspace, total_workspaces])
|
368
|
+
|
369
|
+
expect(@executor.search_command(@event))
|
370
|
+
.to match(/wmctrl -s #{total_workspaces - 1}/)
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
context "when workspace: 'next' and current workspace = total - 1" do
|
375
|
+
around do |example|
|
376
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
377
|
+
dummy:
|
378
|
+
1:
|
379
|
+
direction:
|
380
|
+
workspace: 'next'
|
381
|
+
plugin:
|
382
|
+
executors:
|
383
|
+
wmctrl_executor:
|
384
|
+
wrap-navigation: true
|
385
|
+
CONFIG
|
386
|
+
|
387
|
+
example.run
|
388
|
+
|
389
|
+
Config.custom_path = nil
|
390
|
+
end
|
391
|
+
|
392
|
+
it 'should return wmctrl command with an index of first workspace' do
|
393
|
+
current_workspace = 3
|
394
|
+
total_workspaces = 4
|
395
|
+
|
396
|
+
allow(WmctrlExecutor::Workspace)
|
397
|
+
.to receive(:workspace_values)
|
398
|
+
.and_return([current_workspace, total_workspaces])
|
399
|
+
|
400
|
+
expect(@executor.search_command(@event))
|
401
|
+
.to match(/wmctrl -s 0/)
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
context "when window: 'prev' and current workspace has index 0" do
|
406
|
+
around do |example|
|
407
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
408
|
+
dummy:
|
409
|
+
1:
|
410
|
+
direction:
|
411
|
+
window: 'prev'
|
412
|
+
plugin:
|
413
|
+
executors:
|
414
|
+
wmctrl_executor:
|
415
|
+
wrap-navigation: true
|
416
|
+
CONFIG
|
417
|
+
|
418
|
+
example.run
|
419
|
+
|
420
|
+
Config.custom_path = nil
|
421
|
+
end
|
422
|
+
|
423
|
+
it 'should return wmctrl command with index of last workspace' do
|
424
|
+
current_workspace = 0
|
425
|
+
total_workspaces = 5
|
426
|
+
|
427
|
+
allow(WmctrlExecutor::Workspace)
|
428
|
+
.to receive(:workspace_values)
|
429
|
+
.and_return([current_workspace, total_workspaces])
|
430
|
+
|
431
|
+
expect(@executor.search_command(@event))
|
432
|
+
.to match(/wmctrl -r :ACTIVE: -t #{total_workspaces - 1}/)
|
433
|
+
expect(@executor.search_command(@event))
|
434
|
+
.to match(/wmctrl -s #{total_workspaces - 1}/)
|
435
|
+
end
|
436
|
+
end
|
437
|
+
|
438
|
+
context "when window: 'next' and current workspace is last" do
|
439
|
+
around do |example|
|
440
|
+
ConfigHelper.load_config_yml = <<~CONFIG
|
441
|
+
dummy:
|
442
|
+
1:
|
443
|
+
direction:
|
444
|
+
window: 'next'
|
445
|
+
plugin:
|
446
|
+
executors:
|
447
|
+
wmctrl_executor:
|
448
|
+
wrap-navigation: true
|
449
|
+
CONFIG
|
450
|
+
|
451
|
+
example.run
|
452
|
+
|
453
|
+
Config.custom_path = nil
|
454
|
+
end
|
455
|
+
|
456
|
+
it 'should return wmctrl command with index of first workspace' do
|
457
|
+
current_workspace = 4
|
458
|
+
total_workspaces = 5
|
459
|
+
|
460
|
+
allow(WmctrlExecutor::Workspace)
|
461
|
+
.to receive(:workspace_values)
|
462
|
+
.and_return([current_workspace, total_workspaces])
|
463
|
+
|
464
|
+
expect(@executor.search_command(@event))
|
465
|
+
.to match(/wmctrl -r :ACTIVE: -t 0/)
|
466
|
+
expect(@executor.search_command(@event))
|
467
|
+
.to match(/wmctrl -s 0/)
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
471
|
+
end
|
472
|
+
end
|
473
|
+
end
|
474
|
+
end
|
475
|
+
end
|
476
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'fusuma/config.rb'
|
5
|
+
|
6
|
+
module Fusuma
|
7
|
+
module ConfigHelper
|
8
|
+
module_function
|
9
|
+
|
10
|
+
def load_config_yml=(string)
|
11
|
+
Config.custom_path = Tempfile.open do |temp_file|
|
12
|
+
temp_file.tap { |f| f.write(string) }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'helpers/config_helper.rb'
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
# Enable flags like --only-failures and --next-failure
|
8
|
+
config.example_status_persistence_file_path = '.rspec_status'
|
9
|
+
|
10
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
11
|
+
config.disable_monkey_patching!
|
12
|
+
|
13
|
+
config.expect_with :rspec do |c|
|
14
|
+
c.syntax = :expect
|
15
|
+
end
|
16
|
+
|
17
|
+
config.include(Fusuma::ConfigHelper)
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fusuma-plugin-wmctrl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- iberianpig
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fusuma
|
@@ -31,23 +31,18 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- ".gitignore"
|
35
|
-
- ".rspec"
|
36
|
-
- ".rubocop.yml"
|
37
|
-
- ".rubocop_todo.yml"
|
38
|
-
- ".travis.yml"
|
39
|
-
- CHANGELOG.md
|
40
|
-
- CODE_OF_CONDUCT.md
|
41
|
-
- Gemfile
|
42
34
|
- LICENSE.txt
|
43
35
|
- README.md
|
44
|
-
- Rakefile
|
45
36
|
- bin/console
|
46
37
|
- bin/setup
|
47
38
|
- fusuma-plugin-wmctrl.gemspec
|
48
39
|
- lib/fusuma/plugin/executors/wmctrl_executor.rb
|
49
40
|
- lib/fusuma/plugin/wmctrl.rb
|
50
41
|
- lib/fusuma/plugin/wmctrl/version.rb
|
42
|
+
- spec/fusuma/plugin/plugin/executors/wmctrl_executor_spec.rb
|
43
|
+
- spec/fusuma/plugin/wmctrl_spec.rb
|
44
|
+
- spec/helpers/config_helper.rb
|
45
|
+
- spec/spec_helper.rb
|
51
46
|
homepage: https://github.com/iberianpig/fusuma-plugin-wmctrl
|
52
47
|
licenses:
|
53
48
|
- MIT
|
@@ -71,4 +66,8 @@ rubygems_version: 3.1.4
|
|
71
66
|
signing_key:
|
72
67
|
specification_version: 4
|
73
68
|
summary: Wmctrl plugin for Fusuma
|
74
|
-
test_files:
|
69
|
+
test_files:
|
70
|
+
- spec/fusuma/plugin/plugin/executors/wmctrl_executor_spec.rb
|
71
|
+
- spec/fusuma/plugin/wmctrl_spec.rb
|
72
|
+
- spec/helpers/config_helper.rb
|
73
|
+
- spec/spec_helper.rb
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
inherit_from: .rubocop_todo.yml
|
2
|
-
|
3
|
-
Metrics/ModuleLength:
|
4
|
-
Exclude:
|
5
|
-
- "**/*_spec.rb"
|
6
|
-
|
7
|
-
Metrics/BlockLength:
|
8
|
-
Exclude:
|
9
|
-
- "**/*_spec.rb"
|
10
|
-
- "fusuma-plugin-*.gemspec"
|
11
|
-
|
12
|
-
Metrics/LineLength:
|
13
|
-
Max: 100
|
14
|
-
Exclude:
|
15
|
-
- "fusuma-plugin-*.gemspec"
|
data/.rubocop_todo.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on 2020-01-02 00:51:24 +0900 using RuboCop version 0.75.1.
|
4
|
-
# The point is for the user to remove these configuration records
|
5
|
-
# one by one as the offenses are removed from the code base.
|
6
|
-
# Note that changes in the inspected code, or installation of new
|
7
|
-
# versions of RuboCop, may require this file to be generated again.
|
8
|
-
|
9
|
-
# Offense count: 1
|
10
|
-
Metrics/AbcSize:
|
11
|
-
Max: 17
|
12
|
-
|
13
|
-
# Offense count: 1
|
14
|
-
Metrics/CyclomaticComplexity:
|
15
|
-
Max: 8
|
16
|
-
|
17
|
-
# Offense count: 1
|
18
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
19
|
-
Metrics/MethodLength:
|
20
|
-
Max: 17
|
data/.travis.yml
DELETED
data/CHANGELOG.md
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# Changelog
|
2
|
-
|
3
|
-
## [v0.4.0.pre](https://github.com/iberianpig/fusuma-plugin-wmctrl/tree/v0.4.0.pre) (2020-11-09)
|
4
|
-
|
5
|
-
[Full Changelog](https://github.com/iberianpig/fusuma-plugin-wmctrl/compare/v0.3.0...v0.4.0.pre)
|
6
|
-
|
7
|
-
**Merged pull requests:**
|
8
|
-
|
9
|
-
- sudo for gem install? [\#3](https://github.com/iberianpig/fusuma-plugin-wmctrl/pull/3) ([oli-ver](https://github.com/oli-ver))
|
10
|
-
|
11
|
-
## [v0.3.0](https://github.com/iberianpig/fusuma-plugin-wmctrl/tree/v0.3.0) (2020-01-03)
|
12
|
-
|
13
|
-
[Full Changelog](https://github.com/iberianpig/fusuma-plugin-wmctrl/compare/v0.2.0...v0.3.0)
|
14
|
-
|
15
|
-
**Implemented enhancements:**
|
16
|
-
|
17
|
-
- Control active window \(Close / Minimize / Maximize\) [\#2](https://github.com/iberianpig/fusuma-plugin-wmctrl/issues/2)
|
18
|
-
|
19
|
-
## [v0.2.0](https://github.com/iberianpig/fusuma-plugin-wmctrl/tree/v0.2.0) (2019-11-07)
|
20
|
-
|
21
|
-
[Full Changelog](https://github.com/iberianpig/fusuma-plugin-wmctrl/compare/v0.1.0...v0.2.0)
|
22
|
-
|
23
|
-
**Implemented enhancements:**
|
24
|
-
|
25
|
-
- Move active window to next/prev workspace [\#1](https://github.com/iberianpig/fusuma-plugin-wmctrl/issues/1)
|
26
|
-
|
27
|
-
## [v0.1.0](https://github.com/iberianpig/fusuma-plugin-wmctrl/tree/v0.1.0) (2019-10-12)
|
28
|
-
|
29
|
-
[Full Changelog](https://github.com/iberianpig/fusuma-plugin-wmctrl/compare/7e20b0138aaa335e4b9008ee9af680e8dad188aa...v0.1.0)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/CODE_OF_CONDUCT.md
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# Contributor Covenant Code of Conduct
|
2
|
-
|
3
|
-
## Our Pledge
|
4
|
-
|
5
|
-
In the interest of fostering an open and welcoming environment, we as
|
6
|
-
contributors and maintainers pledge to making participation in our project and
|
7
|
-
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
-
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
-
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
-
orientation.
|
11
|
-
|
12
|
-
## Our Standards
|
13
|
-
|
14
|
-
Examples of behavior that contributes to creating a positive environment
|
15
|
-
include:
|
16
|
-
|
17
|
-
* Using welcoming and inclusive language
|
18
|
-
* Being respectful of differing viewpoints and experiences
|
19
|
-
* Gracefully accepting constructive criticism
|
20
|
-
* Focusing on what is best for the community
|
21
|
-
* Showing empathy towards other community members
|
22
|
-
|
23
|
-
Examples of unacceptable behavior by participants include:
|
24
|
-
|
25
|
-
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
-
advances
|
27
|
-
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
-
* Public or private harassment
|
29
|
-
* Publishing others' private information, such as a physical or electronic
|
30
|
-
address, without explicit permission
|
31
|
-
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
-
professional setting
|
33
|
-
|
34
|
-
## Our Responsibilities
|
35
|
-
|
36
|
-
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
-
behavior and are expected to take appropriate and fair corrective action in
|
38
|
-
response to any instances of unacceptable behavior.
|
39
|
-
|
40
|
-
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
-
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
-
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
-
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
-
threatening, offensive, or harmful.
|
45
|
-
|
46
|
-
## Scope
|
47
|
-
|
48
|
-
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
-
when an individual is representing the project or its community. Examples of
|
50
|
-
representing a project or community include using an official project e-mail
|
51
|
-
address, posting via an official social media account, or acting as an appointed
|
52
|
-
representative at an online or offline event. Representation of a project may be
|
53
|
-
further defined and clarified by project maintainers.
|
54
|
-
|
55
|
-
## Enforcement
|
56
|
-
|
57
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
-
reported by contacting the project team at yhkyky@gmail.com. All
|
59
|
-
complaints will be reviewed and investigated and will result in a response that
|
60
|
-
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
-
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
-
Further details of specific enforcement policies may be posted separately.
|
63
|
-
|
64
|
-
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
-
faith may face temporary or permanent repercussions as determined by other
|
66
|
-
members of the project's leadership.
|
67
|
-
|
68
|
-
## Attribution
|
69
|
-
|
70
|
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
-
available at [http://contributor-covenant.org/version/1/4][version]
|
72
|
-
|
73
|
-
[homepage]: http://contributor-covenant.org
|
74
|
-
[version]: http://contributor-covenant.org/version/1/4/
|
data/Gemfile
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
source 'https://rubygems.org'
|
4
|
-
|
5
|
-
# Specify your gem's dependencies in fusuma-plugin-wmctrl.gemspec
|
6
|
-
gemspec
|
7
|
-
|
8
|
-
gem 'bundler'
|
9
|
-
gem 'github_changelog_generator', '~> 1.14'
|
10
|
-
gem 'pry-byebug', '~> 3.4'
|
11
|
-
gem 'pry-doc'
|
12
|
-
gem 'pry-inline'
|
13
|
-
gem 'rake', '~> 13.0'
|
14
|
-
gem 'reek'
|
15
|
-
gem 'rspec', '~> 3.0'
|
16
|
-
gem 'rubocop'
|
17
|
-
gem 'yard'
|
data/Rakefile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'bundler/gem_tasks'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec)
|
7
|
-
|
8
|
-
task default: :spec
|
9
|
-
|
10
|
-
require 'github_changelog_generator/task'
|
11
|
-
|
12
|
-
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
13
|
-
config.user = 'iberianpig'
|
14
|
-
config.project = 'fusuma-plugin-wmctrl'
|
15
|
-
end
|