fusuma-plugin-wmctrl 0.1.0 → 0.4.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 +4 -4
- data/.rubocop_todo.yml +20 -0
- data/.travis.yml +5 -2
- data/CHANGELOG.md +30 -2
- data/Gemfile +11 -0
- data/README.md +87 -8
- data/fusuma-plugin-wmctrl.gemspec +1 -12
- data/lib/fusuma/plugin/executors/wmctrl_executor.rb +142 -22
- data/lib/fusuma/plugin/wmctrl/version.rb +1 -1
- metadata +5 -145
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f9070f0ff5c01bf9dd2109c2e8c5a7413791fac4048937b3e4dc401c40dbd589
|
|
4
|
+
data.tar.gz: e232215a854eeb26c815478d8b68b58b89dd45983e534584fc377b2dd2e6fdd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3d94aa6dc1afddd886a1e0aa60cb6978a96b1bba6ea34a1a204ecf34f56c26a6ec43cc31fcdec4bc503b31513311c8d208cc898fa8bc7e4b8f727db45c7c1e50
|
|
7
|
+
data.tar.gz: df7ccf6df129eb2a38e39451270ee3f200532c8cacf1cd3f044ffb2af49878042a8e849ff750c01c2f5b38f5b085cc01726f5cd187a7532507a4e97a8fb494ab
|
data/.rubocop_todo.yml
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
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
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v0.4.0.pre](https://github.com/iberianpig/fusuma-plugin-wmctrl/tree/v0.4.0.pre) (2020-11-09)
|
|
3
4
|
|
|
5
|
+
[Full Changelog](https://github.com/iberianpig/fusuma-plugin-wmctrl/compare/v0.3.0...v0.4.0.pre)
|
|
4
6
|
|
|
5
|
-
|
|
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/Gemfile
CHANGED
|
@@ -4,3 +4,14 @@ source 'https://rubygems.org'
|
|
|
4
4
|
|
|
5
5
|
# Specify your gem's dependencies in fusuma-plugin-wmctrl.gemspec
|
|
6
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/README.md
CHANGED
|
@@ -1,31 +1,99 @@
|
|
|
1
|
-
# Fusuma::Plugin::Wmctrl
|
|
1
|
+
# Fusuma::Plugin::Wmctrl [](https://badge.fury.io/rb/fusuma-plugin-wmctrl) [](https://travis-ci.com/iberianpig/fusuma-plugin-wmctrl)
|
|
2
|
+
|
|
2
3
|
|
|
3
4
|
Window Manager plugin for [Fusuma](https://github.com/iberianpig/fusuma)
|
|
4
5
|
|
|
6
|
+
* Move window or workspace instead of xdotool
|
|
7
|
+
* Works on Wayland(Not depends on xdotool)
|
|
8
|
+
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
7
11
|
Run the following code in your terminal.
|
|
8
12
|
|
|
9
|
-
### Install wmctrl
|
|
13
|
+
### 1.Install wmctrl
|
|
14
|
+
|
|
15
|
+
#### For Debian Based Distros (Ubuntu, Debian, Mint, Pop!_OS)
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
$ sudo apt install wmctrl -y
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
#### For Arch Based Distros (Manjaro, Arch)
|
|
10
22
|
|
|
11
23
|
```
|
|
12
|
-
|
|
24
|
+
sudo pacman -S wmctrl
|
|
13
25
|
```
|
|
14
|
-
|
|
26
|
+
|
|
27
|
+
### 2. Install fusuma-plugin-wmctrl
|
|
15
28
|
|
|
16
29
|
This plugin requires [Fusuma](https://github.com/iberianpig/fusuma#update) version 1.0 or later.
|
|
17
30
|
|
|
31
|
+
|
|
32
|
+
**Note For Arch Based Distros:** By default in Arch Linux, when running ```gem```, gems are installed per-user (into ```~/.gem/ruby/```), instead of system-wide (into ```/usr/lib/ruby/gems/```). This is considered the best way to manage gems on Arch, because otherwise they might interfere with gems installed by Pacman. (From Arch Wiki)
|
|
33
|
+
|
|
34
|
+
To install gems system-wide, see any of the methods listed on [Arch Wiki](https://wiki.archlinux.org/index.php/ruby#Installing_gems_system-wide)
|
|
35
|
+
|
|
18
36
|
```sh
|
|
19
|
-
$ gem install fusuma-plugin-wmctrl
|
|
37
|
+
$ sudo gem install fusuma-plugin-wmctrl
|
|
20
38
|
```
|
|
21
39
|
|
|
22
40
|
## Properties
|
|
23
41
|
|
|
42
|
+
### `workspace:` property
|
|
24
43
|
Add `workspace:` property in `~/.config/fusuma/config.yml`.
|
|
25
44
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* `
|
|
45
|
+
Values following are available for `workspace`.
|
|
46
|
+
|
|
47
|
+
* `prev` is value to switch current workspace to previous workspace.
|
|
48
|
+
* `next` is value to switch current workspace to next workspace.
|
|
49
|
+
|
|
50
|
+
### `window:` property
|
|
51
|
+
Add `window:` property in `~/.config/fusuma/config.yml`.
|
|
52
|
+
|
|
53
|
+
Values following are available for `window`.
|
|
54
|
+
|
|
55
|
+
* `prev` is value to move active window to previous workspace.
|
|
56
|
+
* `next` is value to move active window to next workspace.
|
|
57
|
+
* `fullscreen` is value to toggle fullscreen
|
|
58
|
+
* `fullscreen: toggle` toggles the active window to fullscreen.
|
|
59
|
+
```yml
|
|
60
|
+
window: fullscreen
|
|
61
|
+
# ↑ same ↓
|
|
62
|
+
window:
|
|
63
|
+
fullscreen: toggle
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
* `fullscreen: add` changes the active window to a fullscreen.
|
|
67
|
+
```yml
|
|
68
|
+
window:
|
|
69
|
+
fullscreen: add
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
* `fullscreen: remove` restores the active window from fullscreen.
|
|
73
|
+
```yml
|
|
74
|
+
window:
|
|
75
|
+
fullscreen: remove
|
|
76
|
+
```
|
|
77
|
+
* `maximized` is value to toggle maximized
|
|
78
|
+
* `maximized: toggle` toggles the active window to maximized.
|
|
79
|
+
```yml
|
|
80
|
+
window: maximized
|
|
81
|
+
# ↑ same ↓
|
|
82
|
+
window:
|
|
83
|
+
maximized: toggle
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
* `maximized: add` changes the active window to a maximized.
|
|
87
|
+
```yml
|
|
88
|
+
window:
|
|
89
|
+
maximized: add
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
* `maximized: remove` restores the active window from maximized.
|
|
93
|
+
```yml
|
|
94
|
+
window:
|
|
95
|
+
maximized: remove
|
|
96
|
+
```
|
|
29
97
|
|
|
30
98
|
|
|
31
99
|
## Example
|
|
@@ -41,6 +109,17 @@ swipe:
|
|
|
41
109
|
workspace: 'prev'
|
|
42
110
|
```
|
|
43
111
|
|
|
112
|
+
## Configuration
|
|
113
|
+
|
|
114
|
+
The plugin allows to enable (disabled by default) circular navigation between workspaces. To enable it set the following in your config file `~/.config/fusuma/config.yml`.
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
plugin:
|
|
118
|
+
executors:
|
|
119
|
+
wmctrl_executor:
|
|
120
|
+
wrap-navigation: true
|
|
121
|
+
```
|
|
122
|
+
|
|
44
123
|
|
|
45
124
|
## Contributing
|
|
46
125
|
|
|
@@ -25,16 +25,5 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
spec.require_paths = ['lib']
|
|
26
26
|
|
|
27
27
|
spec.required_ruby_version = '>= 2.3' # https://packages.ubuntu.com/search?keywords=ruby&searchon=names&exact=1&suite=all§ion=main
|
|
28
|
-
spec.add_dependency 'fusuma', '~>
|
|
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'
|
|
28
|
+
spec.add_dependency 'fusuma', '~> 2.0.0'
|
|
40
29
|
end
|
|
@@ -1,21 +1,38 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'posix/spawn'
|
|
4
|
+
require 'singleton'
|
|
5
|
+
|
|
3
6
|
module Fusuma
|
|
4
7
|
module Plugin
|
|
5
8
|
module Executors
|
|
6
9
|
# Control Window or Workspaces by executing wctrl
|
|
7
10
|
class WmctrlExecutor < Executor
|
|
11
|
+
# executor properties on config.yml
|
|
12
|
+
# @return [Array<Symbol>]
|
|
13
|
+
def execute_keys
|
|
14
|
+
%i[wmctrl workspace]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def config_param_types
|
|
18
|
+
{
|
|
19
|
+
'wrap-navigation': [TrueClass, FalseClass]
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
super()
|
|
25
|
+
Workspace.configure(wrap_navigation: config_params(:'wrap-navigation'))
|
|
26
|
+
end
|
|
27
|
+
|
|
8
28
|
# execute wmctrl command
|
|
9
29
|
# @param event [Event]
|
|
10
30
|
# @return [nil]
|
|
11
31
|
def execute(event)
|
|
12
32
|
return if search_command(event).nil?
|
|
13
33
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
exec(search_command(event))
|
|
17
|
-
end
|
|
18
|
-
|
|
34
|
+
MultiLogger.info(wmctrl: search_command(event))
|
|
35
|
+
pid = POSIX::Spawn.spawn(search_command(event))
|
|
19
36
|
Process.detach(pid)
|
|
20
37
|
end
|
|
21
38
|
|
|
@@ -32,34 +49,137 @@ module Fusuma
|
|
|
32
49
|
# @return [String]
|
|
33
50
|
# @return [NilClass]
|
|
34
51
|
def search_command(event)
|
|
52
|
+
search_workspace_command(event) || search_window_command(event)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
# @param event [Event]
|
|
58
|
+
# @return [String]
|
|
59
|
+
# @return [NilClass]
|
|
60
|
+
def search_workspace_command(event)
|
|
35
61
|
index = Config::Index.new([*event.record.index.keys, :workspace])
|
|
62
|
+
|
|
36
63
|
direction = Config.search(index)
|
|
37
|
-
return
|
|
64
|
+
return unless direction.is_a?(String)
|
|
65
|
+
|
|
66
|
+
Workspace.move_command(direction: direction)
|
|
67
|
+
end
|
|
38
68
|
|
|
39
|
-
|
|
69
|
+
# @param event [Event]
|
|
70
|
+
# @return [String]
|
|
71
|
+
# @return [NilClass]
|
|
72
|
+
def search_window_command(event)
|
|
73
|
+
index = Config::Index.new([*event.record.index.keys, :window])
|
|
74
|
+
|
|
75
|
+
case property = Config.search(index)
|
|
76
|
+
when 'prev', 'next'
|
|
77
|
+
Window.move_command(direction: property)
|
|
78
|
+
when 'fullscreen'
|
|
79
|
+
Window.fullscreen(method: 'toggle')
|
|
80
|
+
when 'maximized'
|
|
81
|
+
Window.maximized(method: 'toggle')
|
|
82
|
+
when 'close'
|
|
83
|
+
Window.close
|
|
84
|
+
when Hash
|
|
85
|
+
if property[:fullscreen]
|
|
86
|
+
Window.fullscreen(method: property[:fullscreen])
|
|
87
|
+
elsif property[:maximized]
|
|
88
|
+
Window.maximized(method: property[:maximized])
|
|
89
|
+
end
|
|
90
|
+
end
|
|
40
91
|
end
|
|
41
92
|
|
|
42
93
|
# Manage workspace
|
|
43
94
|
class Workspace
|
|
95
|
+
include Singleton
|
|
96
|
+
|
|
97
|
+
attr_accessor :wrap_navigation
|
|
98
|
+
|
|
44
99
|
class << self
|
|
45
|
-
#
|
|
100
|
+
# configure properties of the workspace switcher
|
|
101
|
+
# @return [NilClass]
|
|
102
|
+
def configure(wrap_navigation:)
|
|
103
|
+
instance.wrap_navigation = wrap_navigation
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# get next workspace number
|
|
46
107
|
# @return [Integer]
|
|
47
|
-
def
|
|
48
|
-
|
|
49
|
-
|
|
108
|
+
def next_workspace_num(step:)
|
|
109
|
+
current_workspace_num, total_workspace_num = workspace_values
|
|
110
|
+
|
|
111
|
+
next_workspace_num = current_workspace_num + step
|
|
112
|
+
|
|
113
|
+
return next_workspace_num unless instance.wrap_navigation
|
|
114
|
+
|
|
115
|
+
if next_workspace_num.negative?
|
|
116
|
+
next_workspace_num = total_workspace_num - 1
|
|
117
|
+
elsif next_workspace_num >= total_workspace_num
|
|
118
|
+
next_workspace_num = 0
|
|
119
|
+
else
|
|
120
|
+
next_workspace_num
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def move_command(direction:)
|
|
125
|
+
workspace_num = case direction
|
|
126
|
+
when 'next'
|
|
127
|
+
next_workspace_num(step: 1)
|
|
128
|
+
when 'prev'
|
|
129
|
+
next_workspace_num(step: -1)
|
|
130
|
+
else
|
|
131
|
+
raise "#{direction} is invalid key"
|
|
132
|
+
end
|
|
133
|
+
"wmctrl -s #{workspace_num}"
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
private
|
|
137
|
+
|
|
138
|
+
# get current workspace and total workspace numbers
|
|
139
|
+
# @return [Integer, Integer]
|
|
140
|
+
def workspace_values
|
|
141
|
+
wmctrl_output = `wmctrl -d`.split("\n")
|
|
142
|
+
|
|
143
|
+
current_line = wmctrl_output.grep(/\*/).first
|
|
144
|
+
# NOTE: stderror when failed to get desktop
|
|
145
|
+
# `Cannot get current desktop properties. (_NET_CURRENT_DESKTOP or _WIN_WORKSPACE property)`
|
|
146
|
+
return [0, 1] if current_line.nil?
|
|
147
|
+
|
|
148
|
+
current_workspace_num = current_line.chars.first.to_i
|
|
149
|
+
total_workspace_num = wmctrl_output.length
|
|
150
|
+
|
|
151
|
+
[current_workspace_num, total_workspace_num]
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Manage Window
|
|
157
|
+
class Window
|
|
158
|
+
class << self
|
|
159
|
+
# @param method [String] "toggle" or "add" or "remove"
|
|
160
|
+
def maximized(method:)
|
|
161
|
+
"wmctrl -r :ACTIVE: -b #{method},maximized_vert,maximized_horz"
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def close
|
|
165
|
+
'wmctrl -c :ACTIVE:'
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# @param method [String] "toggle" or "add" or "remove"
|
|
169
|
+
def fullscreen(method:)
|
|
170
|
+
"wmctrl -r :ACTIVE: -b #{method},fullscreen"
|
|
50
171
|
end
|
|
51
172
|
|
|
52
|
-
def
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
"wmctrl -s #{new_workspace_num}"
|
|
173
|
+
def move_command(direction:)
|
|
174
|
+
workspace_num = case direction
|
|
175
|
+
when 'next'
|
|
176
|
+
Workspace.next_workspace_num(step: 1)
|
|
177
|
+
when 'prev'
|
|
178
|
+
Workspace.next_workspace_num(step: -1)
|
|
179
|
+
else
|
|
180
|
+
raise "#{direction} is invalid key"
|
|
181
|
+
end
|
|
182
|
+
"wmctrl -r :ACTIVE: -t #{workspace_num} ; wmctrl -s #{workspace_num}"
|
|
63
183
|
end
|
|
64
184
|
end
|
|
65
185
|
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
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- iberianpig
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-04-12 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:
|
|
19
|
+
version: 2.0.0
|
|
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:
|
|
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
|
|
167
27
|
description: fusuma-plugin-wmctrl is Fusuma plugin for window manager.
|
|
168
28
|
email:
|
|
169
29
|
- yhkyky@gmail.com
|
|
@@ -207,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
207
67
|
- !ruby/object:Gem::Version
|
|
208
68
|
version: '0'
|
|
209
69
|
requirements: []
|
|
210
|
-
rubygems_version: 3.
|
|
70
|
+
rubygems_version: 3.1.4
|
|
211
71
|
signing_key:
|
|
212
72
|
specification_version: 4
|
|
213
73
|
summary: Wmctrl plugin for Fusuma
|