i3-ipc 0.1.3 → 0.1.4
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.
- data/README.markdown +5 -5
- data/Rakefile +1 -1
- data/lib/i3-ipc.rb +1 -1
- data/lib/i3-ipc/runner.rb +10 -10
- data/lib/i3-ipc/version.rb +1 -1
- data/man/i3-ipc.1 +18 -7
- data/man/i3-ipc.1.html +11 -7
- data/man/i3-ipc.1.ronn +14 -7
- metadata +5 -5
data/README.markdown
CHANGED
@@ -58,11 +58,11 @@ There are 3 arguments passed to the block:
|
|
58
58
|
To send data to the socket, you need to use `em.send_data`.
|
59
59
|
* `type` is the received message type.
|
60
60
|
This could be one of
|
61
|
-
*
|
62
|
-
*
|
63
|
-
*
|
64
|
-
*
|
65
|
-
*
|
61
|
+
* MESSAGE\_REPLY\_COMMAND
|
62
|
+
* MESSAGE\_REPLY\_GET\_WORKSPACES
|
63
|
+
* MESSAGE\_REPLY\_SUBSCRIBE
|
64
|
+
* MESSAGE\_REPLY\_GET\_OUTPUTS
|
65
|
+
* EVENT\_WORKSPACE
|
66
66
|
* `data` is the received data, already parsed.
|
67
67
|
|
68
68
|
For example you can use the following code to get the actual focused screen:
|
data/Rakefile
CHANGED
data/lib/i3-ipc.rb
CHANGED
data/lib/i3-ipc/runner.rb
CHANGED
@@ -4,15 +4,16 @@ require 'pp'
|
|
4
4
|
module I3
|
5
5
|
module Runner
|
6
6
|
extend self
|
7
|
+
OUTPUT = $stdout
|
7
8
|
|
8
9
|
def format_output(object, output)
|
9
10
|
if output == :pretty_print
|
10
|
-
pp
|
11
|
+
PP.pp(object, OUTPUT)
|
11
12
|
elsif output == :json
|
12
13
|
require 'json'
|
13
|
-
puts object.to_json
|
14
|
+
OUTPUT.puts object.to_json
|
14
15
|
else
|
15
|
-
|
16
|
+
OUTPUT.puts object.inspect
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
@@ -29,7 +30,7 @@ module I3
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def execute(*args)
|
32
|
-
socket_file = '/
|
33
|
+
socket_file = File.expand_path('~/.i3/ipc.sock')
|
33
34
|
type = 0
|
34
35
|
quiet = false
|
35
36
|
output = :default
|
@@ -37,9 +38,9 @@ module I3
|
|
37
38
|
opts = OptionParser.new do |opts|
|
38
39
|
opts.banner = "Usage: i3-ipc [options] [message]"
|
39
40
|
|
40
|
-
s_desc = 'Set socket file, defaults to /
|
41
|
-
opts.on('-s', '--socket', s_desc) do |s|
|
42
|
-
socket_file = s
|
41
|
+
s_desc = 'Set socket file, defaults to ~/.i3/ipc.sock'
|
42
|
+
opts.on('-s SOCKET', '--socket SOCKET', s_desc) do |s|
|
43
|
+
socket_file = File.expand_path(s)
|
43
44
|
end
|
44
45
|
|
45
46
|
t_desc = 'Set type, 0 = command, 1 = workspace list, 2 = subscribe to workspace event, 3 = output list, default: 0'
|
@@ -64,7 +65,7 @@ module I3
|
|
64
65
|
end
|
65
66
|
|
66
67
|
opts.on('-h', '--help', 'Display this screen') do
|
67
|
-
puts opts
|
68
|
+
OUTPUT.puts opts
|
68
69
|
exit
|
69
70
|
end
|
70
71
|
end
|
@@ -80,8 +81,7 @@ module I3
|
|
80
81
|
end
|
81
82
|
|
82
83
|
payload = args.shift
|
83
|
-
|
84
|
-
puts s.command(payload) unless quiet
|
84
|
+
OUTPUT.puts s.command(payload).inspect unless quiet
|
85
85
|
when I3::IPC::MESSAGE_TYPE_GET_WORKSPACES
|
86
86
|
format_output s.get_workspaces, output
|
87
87
|
when I3::IPC::MESSAGE_REPLY_SUBSCRIBE
|
data/lib/i3-ipc/version.rb
CHANGED
data/man/i3-ipc.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
.\" generated with Ronn/v0.
|
1
|
+
.\" generated with Ronn/v0.5
|
2
2
|
.\" http://github.com/rtomayko/ronn/
|
3
3
|
.
|
4
|
-
.TH "I3\-IPC" "1" "
|
4
|
+
.TH "I3\-IPC" "1" "April 2010" "badboy" "i3-ipc Manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBi3\-ipc\fR \-\- inter\-process communication with i3
|
@@ -25,7 +25,16 @@ Currently implemented message types of i3 are the following:
|
|
25
25
|
.TP
|
26
26
|
\fB1 (GET_WORKSPACES)\fR
|
27
27
|
Gets the current workspaces.
|
28
|
-
The reply will be a JSON\-encoded list of workspaces
|
28
|
+
The reply will be a JSON\-encoded list of workspaces.
|
29
|
+
.
|
30
|
+
.TP
|
31
|
+
\fB2 (SUBSCRIBE)\fR
|
32
|
+
Subscribes your connection to the \fBworkspace\fR event.
|
33
|
+
.
|
34
|
+
.TP
|
35
|
+
\fB3 (GET_OUTPUTS)\fR
|
36
|
+
Gets the current outputs.
|
37
|
+
The reply will be a JSON\-encoded list of outputs.
|
29
38
|
.
|
30
39
|
.SH "OPTIONS"
|
31
40
|
\fBi3\-ipc\fR's default mode of operation is to send the command (type 0) specified on the command line.
|
@@ -35,11 +44,12 @@ These options can be used to change this behavior:
|
|
35
44
|
.
|
36
45
|
.TP
|
37
46
|
\fB\-s\fR, \fB\-\-socket\fR
|
38
|
-
Set the socket file, defaults to /
|
47
|
+
Set the socket file, defaults to ~/.i3/ipc.sock
|
39
48
|
.
|
40
49
|
.TP
|
41
50
|
\fB\-t\fR, \fB\-\-type\fR
|
42
|
-
Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list
|
51
|
+
Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list,
|
52
|
+
type 2 subscribes to the workspace stream, type 3 gets the current output list.
|
43
53
|
.
|
44
54
|
.TP
|
45
55
|
\fB\-p\fR, \fB\-\-pretty\-print\fR
|
@@ -71,9 +81,10 @@ Display this man page.
|
|
71
81
|
.SH "EXAMPLES"
|
72
82
|
.
|
73
83
|
.nf
|
84
|
+
|
74
85
|
$ i3\-ipc \-t 1
|
75
|
-
$ i3\-ipc \-t
|
76
|
-
$ i3\-ipc \-t
|
86
|
+
$ i3\-ipc \-t 2 \-p
|
87
|
+
$ i3\-ipc \-t 3 \-j
|
77
88
|
$ i3\-ipc "exec xterm"
|
78
89
|
.
|
79
90
|
.fi
|
data/man/i3-ipc.1.html
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<meta http-equiv='content-type' value='text/html;charset=utf8'>
|
5
|
-
<meta name='generator' value='Ronn/v0.
|
5
|
+
<meta name='generator' value='Ronn/v0.5'>
|
6
6
|
<title>i3-ipc(1) -- inter-process communication with i3</title>
|
7
7
|
<style type='text/css'>
|
8
8
|
body {margin:0}
|
@@ -81,7 +81,10 @@
|
|
81
81
|
The command will be executed directly after receiving it.
|
82
82
|
The reply will be always {"succes":true} for now.</dd>
|
83
83
|
<dt><code>1 (GET_WORKSPACES)</code></dt><dd> Gets the current workspaces.
|
84
|
-
The reply will be a JSON-encoded list of workspaces
|
84
|
+
The reply will be a JSON-encoded list of workspaces.</dd>
|
85
|
+
<dt><code>2 (SUBSCRIBE)</code></dt><dd> Subscribes your connection to the <code>workspace</code> event.</dd>
|
86
|
+
<dt><code>3 (GET_OUTPUTS)</code></dt><dd> Gets the current outputs.
|
87
|
+
The reply will be a JSON-encoded list of outputs.</dd>
|
85
88
|
</dl>
|
86
89
|
|
87
90
|
|
@@ -92,8 +95,9 @@
|
|
92
95
|
<p>These options can be used to change this behavior:</p>
|
93
96
|
|
94
97
|
<dl>
|
95
|
-
<dt><code>-s</code>, <code>--socket</code></dt><dd><p>Set the socket file, defaults to /
|
96
|
-
<dt><code>-t</code>, <code>--type</code></dt><dd><p>Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list
|
98
|
+
<dt><code>-s</code>, <code>--socket</code></dt><dd><p>Set the socket file, defaults to ~/.i3/ipc.sock</p></dd>
|
99
|
+
<dt><code>-t</code>, <code>--type</code></dt><dd><p>Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list,
|
100
|
+
type 2 subscribes to the workspace stream, type 3 gets the current output list.</p></dd>
|
97
101
|
<dt><code>-p</code>, <code>--pretty-print</code></dt><dd><p>This will pretty print the received reply. Useful for the workspace list.</p></dd>
|
98
102
|
<dt><code>-j</code>, <code>--json</code></dt><dd><p>This will print the received reply as raw json-encoded data. Useful to pass to another script.</p></dd>
|
99
103
|
<dt><code>-q</code>, <code>--quiet</code></dt><dd><p>Turn off the output. Useful for command mode.</p></dd>
|
@@ -112,8 +116,8 @@
|
|
112
116
|
<h2>EXAMPLES</h2>
|
113
117
|
|
114
118
|
<pre><code>$ i3-ipc -t 1
|
115
|
-
$ i3-ipc -t
|
116
|
-
$ i3-ipc -t
|
119
|
+
$ i3-ipc -t 2 -p
|
120
|
+
$ i3-ipc -t 3 -j
|
117
121
|
$ i3-ipc "exec xterm"
|
118
122
|
</code></pre>
|
119
123
|
|
@@ -132,7 +136,7 @@ $ i3-ipc "exec xterm"
|
|
132
136
|
|
133
137
|
<ol class='foot man'>
|
134
138
|
<li class='tl'>badboy</li>
|
135
|
-
<li class='tc'>
|
139
|
+
<li class='tc'>April 2010</li>
|
136
140
|
<li class='tr'>i3-ipc(1)</li>
|
137
141
|
</ol>
|
138
142
|
|
data/man/i3-ipc.1.ronn
CHANGED
@@ -14,12 +14,18 @@ Currently implemented message types of i3 are the following:
|
|
14
14
|
|
15
15
|
* `0 (COMMAND)`:
|
16
16
|
The payload of the message is a command for i3
|
17
|
-
(like the commands you can bind to keys in the configuration file)
|
17
|
+
(like the commands you can bind to keys in the configuration file)
|
18
18
|
The command will be executed directly after receiving it.
|
19
19
|
The reply will be always {"succes":true} for now.
|
20
20
|
* `1 (GET_WORKSPACES)`:
|
21
|
-
Gets the current workspaces.
|
22
|
-
The reply will be a JSON-encoded list of workspaces
|
21
|
+
Gets the current workspaces.
|
22
|
+
The reply will be a JSON-encoded list of workspaces.
|
23
|
+
* `2 (SUBSCRIBE)`:
|
24
|
+
Subscribes your connection to the `workspace` event.
|
25
|
+
* `3 (GET_OUTPUTS)`:
|
26
|
+
Gets the current outputs.
|
27
|
+
The reply will be a JSON-encoded list of outputs.
|
28
|
+
|
23
29
|
|
24
30
|
## OPTIONS
|
25
31
|
|
@@ -28,10 +34,11 @@ Currently implemented message types of i3 are the following:
|
|
28
34
|
These options can be used to change this behavior:
|
29
35
|
|
30
36
|
* `-s`, `--socket`:
|
31
|
-
Set the socket file, defaults to /
|
37
|
+
Set the socket file, defaults to ~/.i3/ipc.sock
|
32
38
|
|
33
39
|
* `-t`, `--type`:
|
34
|
-
Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list
|
40
|
+
Set the type. Passing a type of 0 is the default and will send the specified command, type 1 gets the current workspace list,
|
41
|
+
type 2 subscribes to the workspace stream, type 3 gets the current output list.
|
35
42
|
|
36
43
|
* `-p`, `--pretty-print`:
|
37
44
|
This will pretty print the received reply. Useful for the workspace list.
|
@@ -56,8 +63,8 @@ You may additionally ask for help:
|
|
56
63
|
## EXAMPLES
|
57
64
|
|
58
65
|
$ i3-ipc -t 1
|
59
|
-
$ i3-ipc -t
|
60
|
-
$ i3-ipc -t
|
66
|
+
$ i3-ipc -t 2 -p
|
67
|
+
$ i3-ipc -t 3 -j
|
61
68
|
$ i3-ipc "exec xterm"
|
62
69
|
|
63
70
|
## BUGS
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 4
|
9
|
+
version: 0.1.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jan-Erik Rediger
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-16 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
- 10
|
44
44
|
- 3
|
45
45
|
version: 2.10.3
|
46
|
-
type: :
|
46
|
+
type: :development
|
47
47
|
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: mocha
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
- 9
|
58
58
|
- 8
|
59
59
|
version: 0.9.8
|
60
|
-
type: :
|
60
|
+
type: :development
|
61
61
|
version_requirements: *id003
|
62
62
|
description: " uses the ipc socket of i3 to send commands or get information directly from the window manager. Useful for scripting the window manager.'\n"
|
63
63
|
email: badboy@archlinux.us
|