totalspaces2 2.0.1 → 2.0.2

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
  SHA1:
3
- metadata.gz: a87f5e5ecdee90fc2e0350b48fc730ecda225b74
4
- data.tar.gz: defb44f1c8865d0bc6de35d48fded7a1570ace82
3
+ metadata.gz: a35ca4a8f18d11eaffa4fefe54e252c3235c65bd
4
+ data.tar.gz: d384467bf0080d07fb93521e1b54bac8aa141f6c
5
5
  SHA512:
6
- metadata.gz: 47f2304089c5a008f3f1123562226b6d12f5999e845f2a299a8457e5a82598695ccb383e4acc40c385aa1c415bf024852b0c8bc0ae38cf2d71301fa6f7f476df
7
- data.tar.gz: 71fa701e8034dc526c6018e7302189f33fa8f5535ed220172169361dc2cd0eb1ccf70ce8fba5350e63bda3b90c03df98cd15015ce5d53d4679b51e774d0c935c
6
+ metadata.gz: 28cf0083fd27abfd0e861ae8f241c1359f3c110380856df9489901ccd7060d6433016ce13c8b5b71662f0b5ced6a15908e2c94c756c2cc3423dd3bba9ab5b7d7
7
+ data.tar.gz: d77f8e8f4badc876659dc11c3042e5ae76452520ca7ee8d185bc2ec6d137cee57f049d119bacc48b0dab0190cf4b9d17ca25442d6d37c4bddf0e7fc326b86955
@@ -98,6 +98,14 @@ unsigned int tsapi_currentSpaceNumberOnDisplay(CGDirectDisplayID displayID);
98
98
  */
99
99
  const char *tsapi_spaceNameForSpaceNumberOnDisplay(unsigned int spaceNumber, CGDirectDisplayID displayID);
100
100
 
101
+ /*
102
+ * The uuid for the given space number. This uniquely identifies the space, even when
103
+ * it is moved to a different position or to another monitor.
104
+ *
105
+ * You must call tsapi_freeString when you have finished with the returned string.
106
+ */
107
+ const char *tsapi_uuidForSpaceNumberOnDisplay(unsigned int spaceNumber, CGDirectDisplayID displayID);
108
+
101
109
  /*
102
110
  * The total number of spaces.
103
111
  * This includes the dashboard if you have it set as a space, and any
@@ -228,6 +236,15 @@ bool tsapi_moveWindowToSpaceOnDisplay(unsigned int windowID, unsigned int spaceN
228
236
  */
229
237
  bool tsapi_moveSpaceToPositionOnDisplay(unsigned int spaceNumber, unsigned int positionNumber, CGDirectDisplayID displayID);
230
238
 
239
+ /*
240
+ * Move a space to another position on another display
241
+ * You cannot use this displays have separate spaces is turned off.
242
+ * You cannot move a currently visible space.
243
+ *
244
+ * Returns true on success, false if any parameter was invalid.
245
+ */
246
+ bool tsapi_moveSpaceOnDisplayToPositionOnDisplay(unsigned int spaceNumber, CGDirectDisplayID fromDisplayID, unsigned int positionNumber, CGDirectDisplayID toDisplayID);
247
+
231
248
  /*
232
249
  * Add desktops
233
250
  * There can usually be at most 16 desktops, unless desktops have migrated
Binary file
@@ -5,8 +5,7 @@
5
5
  # It is the officially supported way of using the API library libtotalspaces2api, and the required dylib
6
6
  # comes bundled with this gem. This gem uses {Ruby-FFI}[link:https://github.com/ffi/ffi] to call the functions in the dylib.
7
7
  # You'll need a sane ruby and compilation environment to install ruby-ffi - it probably won't install immediately with the
8
- # ruby that comes with OSX because none of the compilation tools are present. We use {homebrew}[link:http://mxcl.github.com/homebrew/]
9
- # and {rbenv}[link:https://github.com/sstephenson/rbenv/] to manage our ruby scripting environment.
8
+ # ruby that comes with OSX because none of the compilation tools are present - you'll need to install Xcode first.
10
9
  #
11
10
  # You may use this gem in various ways. For instance, you could:
12
11
  #
@@ -27,6 +26,9 @@
27
26
  #
28
27
  # % [sudo] gem install totalspaces2
29
28
  #
29
+ # You will need Xcode installed in order for the C compiler to be present in order to install
30
+ # ruby-ffi, which is required (and automatically installed) by the totalspaces2 gem.
31
+ #
30
32
  # Source code can be downloaded on GitHub
31
33
  #
32
34
  # * https://github.com/binaryage/totalspaces2-api
@@ -81,6 +83,7 @@ module TSApi #:nodoc:
81
83
 
82
84
  attach_function :tsapi_currentSpaceNumberOnDisplay, [:uint], :uint
83
85
  attach_function :tsapi_spaceNameForSpaceNumberOnDisplay, [:uint, :uint], :pointer
86
+ attach_function :tsapi_uuidForSpaceNumberOnDisplay, [:uint, :uint], :pointer
84
87
  attach_function :tsapi_numberOfSpacesOnDisplay, [:uint], :uint
85
88
 
86
89
  attach_function :tsapi_definedColumnsOnDisplay, [:uint], :uint
@@ -104,6 +107,7 @@ module TSApi #:nodoc:
104
107
  attach_function :tsapi_moveWindowToSpaceOnDisplay, [:uint, :uint, :uint], :bool
105
108
 
106
109
  attach_function :tsapi_moveSpaceToPositionOnDisplay, [:uint, :uint, :uint], :bool
110
+ attach_function :tsapi_moveSpaceOnDisplayToPositionOnDisplay, [:uint, :uint, :uint, :uint], :bool
107
111
 
108
112
  attach_function :tsapi_addDesktopsOnDisplay, [:uint, :uint], :uint
109
113
  attach_function :tsapi_removeDesktopsOnDisplay, [:uint, :uint], :bool
@@ -246,7 +250,7 @@ module TotalSpaces2
246
250
  end
247
251
 
248
252
  # Returns the number of the current space on the given display.
249
- # Space numbering starts at 1
253
+ # Space numbering starts at 1.
250
254
  #
251
255
  # display_id = TotalSpaces2.displays[0]
252
256
  # puts "Current space number: #{TotalSpaces2.current_space_on_display(display_id)}"
@@ -256,7 +260,7 @@ module TotalSpaces2
256
260
  end
257
261
 
258
262
  # Returns the name for a space on the main display. The returned string will be empty
259
- # if the space number is not valid
263
+ # if the space number is not valid.
260
264
  #
261
265
  # current_space = TotalSpaces2.current_space
262
266
  # puts "Current space is called: #{TotalSpaces2.name_for_space(current_space)}"
@@ -267,7 +271,7 @@ module TotalSpaces2
267
271
  end
268
272
 
269
273
  # Returns the name for a space. The returned string will be empty if the space number is
270
- # not valid
274
+ # not valid.
271
275
  #
272
276
  # current_space = TotalSpaces2.current_space
273
277
  # display_id = TotalSpaces2.main_display[:display_id]
@@ -278,6 +282,29 @@ module TotalSpaces2
278
282
  name.force_encoding("UTF-8")
279
283
  end
280
284
 
285
+ # Returns the uuid for a space on the main display. The returned string will be empty
286
+ # if the space number is not valid.
287
+ #
288
+ # current_space = TotalSpaces2.current_space
289
+ # puts "Current space uuid is: #{TotalSpaces2.uuid_for_space(current_space)}"
290
+ #
291
+ def uuid_for_space(space_number)
292
+ uuid = string_and_free(TSApi.tsapi_uuidForSpaceNumberOnDisplay(space_number, 0))
293
+ uuid.force_encoding("UTF-8")
294
+ end
295
+
296
+ # Returns the uuid for a space. The returned string will be empty
297
+ # if the space number is not valid.
298
+ #
299
+ # current_space = TotalSpaces2.current_space
300
+ # display_id = TotalSpaces2.main_display[:display_id]
301
+ # puts "Current space uuid is: #{TotalSpaces2.uuid_for_space_on_display(current_space, display_id)}"
302
+ #
303
+ def uuid_for_space_on_display(space_number, display_id)
304
+ uuid = string_and_free(TSApi.tsapi_uuidForSpaceNumberOnDisplay(space_number, display_id))
305
+ uuid.force_encoding("UTF-8")
306
+ end
307
+
281
308
  # Returns the total number of spaces including fullscreens, dashboard (if it's a space).
282
309
  #
283
310
  # puts "Total number of spaces: #{TotalSpaces2.number_of_spaces}"
@@ -499,7 +526,7 @@ module TotalSpaces2
499
526
  # TotalSpaces2.move_space_to_position(4, 2)
500
527
  #
501
528
  def move_space_to_position(space_number, position_number)
502
- TSApi.tsapi_moveSpaceToPositionOnDisplay(space_number, position_number)
529
+ TSApi.tsapi_moveSpaceToPositionOnDisplay(space_number, position_number, 0)
503
530
  end
504
531
 
505
532
  # Move space to a new position in the grid. Spaces can only be moved
@@ -514,6 +541,19 @@ module TotalSpaces2
514
541
  TSApi.tsapi_moveSpaceToPositionOnDisplay(space_number, position_number, display_id)
515
542
  end
516
543
 
544
+ # Move space to a new position on another screen.
545
+ # This won't work if you do not have displays have separate spaces enabled.
546
+ #
547
+ # Returns false if any parameters are not valid.
548
+ #
549
+ # display_id = TotalSpaces2.main_display[:display_id]
550
+ # display2_id = TotalSpaces2.display_list[1][:display_id]
551
+ # TotalSpaces2.move_space_on_display_to_position_on_display(2, display_id, 1, display2_id)
552
+ #
553
+ def move_space_on_display_to_position_on_display(space_number, from_display_id, position_number, to_display_id)
554
+ TSApi.tsapi_moveSpaceOnDisplayToPositionOnDisplay(space_number, from_display_id, position_number, to_display_id)
555
+ end
556
+
517
557
  # Add desktops
518
558
  # There can be at most 16 desktops unless the display has collected some when
519
559
  # a secondary display has been unplugged.
metadata CHANGED
@@ -1,27 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: totalspaces2
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Sykes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-15 00:00:00.000000000 Z
11
+ date: 2014-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
18
21
  - !ruby/object:Gem::Version
19
22
  version: 1.0.11
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - '>='
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
25
31
  - !ruby/object:Gem::Version
26
32
  version: 1.0.11
27
33
  description: This allows you to control the TotalSpaces2 desktop manager for mac from
@@ -31,32 +37,33 @@ executables: []
31
37
  extensions: []
32
38
  extra_rdoc_files: []
33
39
  files:
34
- - README.rdoc
35
40
  - MIT_LICENCE
36
- - lib/totalspaces2.rb
37
- - lib/libtotalspaces2api.dylib
41
+ - README.rdoc
38
42
  - lib/TSLib.h
43
+ - lib/libtotalspaces2api.dylib
44
+ - lib/totalspaces2.rb
39
45
  homepage: https://github.com/binaryage/totalspaces2-api/tree/master/ruby
40
- licenses: []
46
+ licenses:
47
+ - MIT
41
48
  metadata: {}
42
49
  post_install_message:
43
50
  rdoc_options:
44
- - --charset=UTF-8
51
+ - "--charset=UTF-8"
45
52
  require_paths:
46
53
  - lib
47
54
  required_ruby_version: !ruby/object:Gem::Requirement
48
55
  requirements:
49
- - - '>='
56
+ - - ">="
50
57
  - !ruby/object:Gem::Version
51
58
  version: '0'
52
59
  required_rubygems_version: !ruby/object:Gem::Requirement
53
60
  requirements:
54
- - - '>='
61
+ - - ">="
55
62
  - !ruby/object:Gem::Version
56
63
  version: '0'
57
64
  requirements: []
58
65
  rubyforge_project:
59
- rubygems_version: 2.0.3
66
+ rubygems_version: 2.2.2
60
67
  signing_key:
61
68
  specification_version: 4
62
69
  summary: TotalSpaces2 control from ruby