forked from jordansissel/xdotool
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELIST
558 lines (501 loc) · 27.7 KB
/
CHANGELIST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
KNOWN ISSUES:
- OSX: windowmove in OSX/X11 default WM incorrectly reports or accepts window
position. The coordinates of a window's current position cannot be used to
correctly place the window. Normally, window managers are supposed to
report reserved window extents in the property list of the root window
(say, for the OS X menu bar), but OS X's default X11 wm does not do this.
If this affects you, please let me know and I will attempt to fix it.
- Wayland: Wayland is an alternative to X11 as a graphical system.
Unfortunately, there seem to be no common and stable way to do what
xdotool does *on* Wayland, so xdotool does not work correctly under Wayland.
3.20210804.1
- xdotool and libxdo will now reject if it is running under Wayland/XWayland.
If XWayland is detected, the program will fail. This is because XWayland
doesn't allow xdotool or libxdo to work correctly. (#342, Jordan Sissel)
- New command `windowstate` which can be used to modify properties of windows.
For example, to full-screen the current window, use:
xdotool getactivewindow windowstate --add FULLSCREEN
(#158 by Zhai Zhao Xuan)
- New command `windowquit` which is used to ask the windowed application to
terminate. (#306, Antonio Russo)
- New command `getwindowclassname` to print the window's class name.
(#247, Dominic Mueller)
- When sending keystrokes, `enter` and `return` now are synonyms for the
`Return` key symbol (CSylvain)
- getmouselocation now updates the window stack with the window the cursor is
currently over. (#118, Jordan Sissel)
- search command now supports searching by window role with `--role` flag (#305, altblue)
- search command should now no longer report BadWindow errors (#335, Marek Marczykowski-Górecki)
- get_window_location now reports correct value (#289, Edwin Heerschap)
- Uppercase Latin-1/Basic Latin are now typed correctly (#283, Hasan)
- Document the regular expressions (POSIX Extended) supported by xdotool
(#???, Lucas Werkmeister)
- Use the default X11 Screen instead of assuming 0 (#265, Miroslav Koškár)
- Wrap header files with `extern "C"` to enable easier C++ use of libxdo.
(#331, easyaspi314)
- Install pkgconfig file when running `make install` (#229, Joakim Repomaa)
- Set permissions correctly when installing `xdo.h` (#324, Dan Church)
- Fix memory leak (#241, Andrew McDermott)
- Fix memory leak (#299, orcNo and longqi)
- Fixed some documentation typos (#161, Vincent Legoll; #336, yjqg6666)
- Fix all compiler warnings during `make` (#344, Jordan Sissel)
3.20160805.1
- Fix release tool problem. cflags.sh was missing from the previous two
releases.
`make test-package-build` now works correctly on OSX 10.11 and Fedora 23.
3.20160804.2
- Fix some bugs in the Makefile especially for OS X / macOS Sierra
(Misty De Meo)
3.20160804.1
- Fix compilation problems on OSX 10.12 aka macOS Sierra. (#138; Jordan
Sissel and Misty De Meo)
- Fix memory leaks in window search and charcode map lookups (Markus Roth)
- xdotool selectwindow (xdo_select_window_with_click) now only selects the
window if mouse button 1 is pressed. Any other buttons will cause this
selection to be aborted. (#136, #137; Jordan Sissel and Yuri D'Elia)
- Fix bug where `xdotool click` with --clearmodifiers can sometimes leave
stuck keys or mouse buttons. (#102, Aurelien Lourot)
- windowmove now supports coordinates as a percentage of screen size. For
example, a move to 50% 50% would move the window such that the top-left
corner of the window is in the center of the screen. (#92, #27; Collin
Guarino)
- Typing commands (key and type) will now try to use XTEST instead of
XSendEvent in a special circumstance. If the window id given (by window
stack or the --window flag) is the currenly-focused window, key sequences
will be sent using XTEST. (#85, mpnolan)
- getmouselocation, getwindowgeometry, and search commands: now supports
--shell and --prefix for having stdout be consumable by bash or similar
shells. (#80, yatsek)
- xdotool scripts such as running via `xdotool -` will now execute commands
as lines of input are read. The previous behavior waited until stdin closed
before executing anything. (#131, abensj)
3.20150503
- Lots of changes over the past 4 years, but with many folks telling me to do
another release tarball, here it is.
We can backfill the changelog later.
2.20110530.*
- New set_window feature: --urgency. This lets you set the urgency flag on a
window Window managers will interpret this as something about your window
needing attention. It might flash in the taskbar, pop up, or other.
Original patch and suggestion by ervandew.
Issue: http://code.google.com/p/semicomplete/issues/detail?id=39
- New function: xdo_window_seturgency (see above)
- Hack in OS X support as it is missing a proper clock_gettime.
Should fix http://code.google.com/p/semicomplete/issues/detail?id=37
Reported by ryandesign.com
- Add support for typing UTF-8 characters. Patch from Joseph Krahn.
- Make all output call fflush to send data immediately (for pipes). Reported
by Andreas Wagner on the mailing list.
- Make 'get_desktop_viewport' output usable with 'set_desktop_viewport'
http://code.google.com/p/semicomplete/issues/detail?id=47
- You can now make 'libxdo.a' for embedding libxdo into your binary
(Requested by psc on the mailing list).
- Fixed a typing bug where the keymap changes unnecessarily
- Should now build cleanly in C++ environments (Reported by psc on the
mailing list)
- bugfix: xdotool should use command names first before trying file scripts.
See https://bbs.archlinux.org/viewtopic.php?pid=938309 for original report.
- Add a 'sleep' command. (Requested by Joseph Krahn via mailing list)
- Add --relative flag to windowmove. (Requested by Anthony Thyssen via mailing
- Add --desktop flag to the search command. This lets you search for windows
on specific desktop. Requires a window manager that supports multiple
desktops in a way that EWMH supports.
Fixes http://code.google.com/p/semicomplete/issues/detail?id=38
- Add --limit flag to search. This allows you to break the search early after
a certain number of matches. (Requested by Anthony Thyssen)
- New command 'getwindowgeometry' for fetching window position and size
(Requested by Anthony Thyssen via mailing list)
- Add --sync flag to search command; blocks until results are found.
xdotool will search every 0.5 seconds for results.
http://code.google.com/p/semicomplete/issues/detail?id=42
- windowmove can now move windows along an axis. Give literal 'x' or 'y'
instead of a coordinate and it uses the current position. (Requested by
etnlIcarus via mailing list)
- Add '--args N' and '--terminator TERMINATOR' to the 'exec' command.
Default terminator unless specified (or --args is) is ':' (Requested by
Joseph Krahn and Henning Bekel via mailing list)
- set_desktop now supports --relative flag (+N or -N to move relative)
(Requested by Anthony Thyssen)
- The mouse cursor now changes during 'xdotool selectwindow' (Requested by
Anthony Thyssen via mailing list)
- Added '--args N' and '--terminator TERMINATOR' to the 'type' command.
- Add 'getdisplaygeometry' command for querying the size of your screen.
(Requested by @rrwo via twitter)
- Add xdo_get_viewport_dimensions function.
2.20101012.*
- New command: 'windowminimize' for minimizing windows. If you want to
unminimize a window, use 'windowactivate'.
- New command: 'behave_screen_edge' to attach commands to edge and corner
activities. For example, to lock your screen when the mouse hits the
top-right corner for more than 2 seconds:
xdotool behave_screen_edge --delay 2000 top-right exec xscreensaver-command -lock
'xscreensaver-command' comes with the xscreensaver package.
- New command: 'exec' for executing commands. Useful with behave_screen_edge.
- Bug fix: Catch pointer grab failures in selectwindow (xdo_window_select)
and abort if we can't grab it and report an error message.
- Add --delay and --repeat flags to click. This allows you to easily
double-click (or more) in a single command. Requested by meenakshi sundaram
via the mailing list.
- Add new option to mouse move 'restore'. This will restore the mouse position
to the last known position prior to the most recent move. That is:
xdotool mousemove 0 0 mousemove restore
the above will move the mouse to 0,0 then move the mouse back to the
position it was before. Requested by luc le rumeur and suffian amjad on the
mailing list.
- Add 'static' and 'install-static' targets. Requested by Anthony Thyssen on
the mailing list.
- Fix bug in xdotool getmouselocation that didn't search for the client window
correctly.
- New function: xdo_mousewindow, which lets you get the window the mouse is
currently over.
- New function: xdo_mouselocation2, which is an extended version of
xdo_mouselocation and includes the window the mouse is currently over.
- New function: xdo_window_minimize, which minimizes a window.
- Add patch from Henning Bekel that greatly improves xdotool's script
feature. Scripts now no longer invoke /bin/sh for each line, but instead
build a command chain to execute. Further, positional arguments ($1, $2,
etc) and environment variables ($FOO, $WINDOWID, etc) work as expected
despite the removal of /bin/sh.
2.20100818.*
- New commands: 'get_desktop_viewport' and 'set_desktop_viewport'. Some
window managers don't actually do 'multiple desktops' but instead show
workspaces as views on a large desktop. For example, Compiz Fusion does
this, which is why you may see 4 or more desktops, but 'xdotool
get_num_desktops' reports only one.
- New command: 'selectwindow' command which picks a window by clicking on it.
- New command: 'windowreparent' with original patch by Markus Opitz.
- New command: 'windowkill' will kill a window and the client that owns it
(via XKillClient)
- New command: 'getwindowname' for printing the name (title) of a window.
Requested by Dominik Reichl for KeePass.
- New command: 'behave'. This allows you to run xdotool commands on window
events. For example, you can achieve 'mouse-follows-focus' with this:
xdotool search --class xterm behave %@ mouse-enter windowfocus
This will find all xterms and, upon mouse entering, will focus that window.
Not really sure what I wanted with this feature, but it can grow as needed.
- Support percentages in 'windowsize'. Percentages are relative to the size
of the screen the window is on. 'windowsize 12345 100% 50%' will make the
window the full width and half height of the screen.
- When typing, if we can't find a character in the existing keymap, try
looking up in keysym_charmap (xdo_util.h) and binding a key if we find one
that matches. Reported by Victor Baulac on the mailing list. This allows
us to type '@', for example, even if the current keymap does not have
this key.
2.20100701.*:
- No functional changes.
- Add missing file 'Doxyfile' to the release package so the xdo docs can be
built from a release tarball. (Reported by Daniel Kahn Gillmor)
- Skip 'getwindowfocus' misc test if we don't have a windowmanager due to
a bug/feature in Xvfb and Xephyr if there is only one client and no wm.
2.20100623.*:
- Added 'window stack' and 'command chaining' support. Basically lets you
include multiple commands on a single xdotool invocation and saves the last
window result from search, getactivewindow, and getwindowfocus. For example,
the default window selector is "%1" meaning the first window. 'xdotool
search --class xterm windowsize 500 500' will resize the first xterm found.
All commands that take window arguments (as flags or otherwise) now default to
"%1" if unspecified. See xdotool(1) manpage sections 'COMMAND CHAINING'
and 'WINDOW STACK' for more details. This feature was suggested (with great
detail) by Henning Bekel.
- To simplify command chaining, all options now terminate at the first
non-option argument. See getopt(3) near 'POSIXLY_CORRECT' for details.
- Add --sync support to windowsize.
- Update docs and output to indicate that 'search --title' is deprecated (but
still functions). Use --name instead.
- Fix mousemove --screen problem due to bug in XTEST. Reported by
Philipp Specht, http://code.google.com/p/semicomplete/issues/detail?id=35
- Fix segfault when invoking xdotool with an invalid command.
http://code.google.com/p/semicomplete/issues/detail?id=34
Reported by: Bruce Jerrick, Sven Lankes, Daniel Kahn Gillmor, and Thomas
Schwery.
- Fix bug --clearmodifiers bug caused by an uninitialized value being
interpreted as the 'modmask' causing us to try to clear invalid modifiers.
Reported by Hong-Leong Ong on the mailing list.
- Lots of internal refactoring and documentation improvements.
- Testing additions for several commands in addition to command chaining.
- Documented libxdo through xdo.h. Docs can be generated by 'make docs'
from the xdotool release.
- libxdo: xdo_window_translate_with_sizehint
- libxdo: xdo_window_wait_for_size
2.20100602.*:
- testing fix: Make mouse movement tests more tolerant of slight variations.
2.20100601.*:
- Add --sync and --clearmodifiers support to mousemove_relative
- Fix bug in mousemove_relative --polar (Reported by Paul S via mailing list)
- Change polar coordinates to be 'north'-oriented (0 is up, 90 is right...)
(Requested by Paul S via mailing list)
- Changed xdotool search flags. '--title' now means '--name' to match the
window name (shown in the window manager title bar for the window).
Related: http://code.google.com/p/semicomplete/issues/detail?id=33
--title still works, but you will get a warning about deprecation.
- Walked through all commands and tried to make sure the manpage reflects
reality and has more detail where needed.
2.20100525.*:
- Skip certain tests when the requirements aren't met (ie; no such window manager, etc)
Reported by Daniel Kahn Gillmor.
2.20100524.*:
- Make search --name search the window title, not the classname
- Add --sync flag to many commands. This flag will make any supporting command
block until the operation completes. For example, a 'windowmove --sync' will
only exit once the window has moved. Commands supported:
* windowactivate
* windowfocus
* windowmap
* windowmove
* windowunmap
- Fix http://code.google.com/p/semicomplete/issues/detail?id=21
Multiple keyboard layouts are now supported better. Added unit tests
to ensure consistency in typing across releases.
- Added polar coordinate support to mouse movement. 'mousemove' and
'mousemove_relative' support this. Flag is --polar. 'x' becomes angle (degrees)
and 'y' becomes distance. The default origin is screen center. If you specify
a window (to mousemove) then the origin is the center of that window.
Requested by Paul S on the xdotool-users mailing list.
- internal: Reworked testing to be less flakey
http://code.google.com/p/semicomplete/issues/detail?id=30
- internal: split commands into one per C file
- API changes that required a version bump.
* xdo_keysequence and friends now take a delay.
- New libxdo functions:
* xdo_window_wait_for_map_state
* xdo_window_wait_for_active
* xdo_get_window_location
* xdo_window_wait_for_focus
1.20100415.*:
- Add support for searching classnames (not just class)
- Support switched xkbmaps. We do this by checking if the keycode found for a keysym
has that keysym as the first or second (normal or with shift-key) mapping, if not
we pretend we didn't find it and request it be bound as if the keysym wasn't mapped
to any key.
This is a hack to avoid knowing what other modifiers are required to type
keysyms mapped at indexes 2 or beyond (0 is normal, 1 is shift, 2 and beyond
are unknown).
Verified fixes this: http://code.google.com/p/semicomplete/issues/detail?id=13
Should fix some of this: http://code.google.com/p/semicomplete/issues/detail?id=21
- Add --shell flag to getmouselocation. This will output data you can safely
eval in your shell.
- Add platform detection for Darwin when building.
Should fix: http://code.google.com/p/semicomplete/issues/detail?id=28
1.20100325.*:
- Fix bug in search where --name wasn't working. Test written to cover this.
http://code.google.com/p/semicomplete/issues/detail?id=25
1.20100318.*:
- Bug fixes only this release
- Rewrote tests to use ruby and will now test against Xvfb and Xephyr using:
no window manager, openbox, and then gnome.
- Fix build problems on Arch linux (or gentoo?)
Fixes: http://code.google.com/p/semicomplete/issues/detail?id=20
- Fix searching for only visible windows.
Fixes: http://code.google.com/p/semicomplete/issues/detail?id=22
- Fix xdotool search flags: --title, --name, --class
- Add include for keysym.h to fix compile errors reported on the mailing
list.
1.20100302.*:
- Some test fixes suggested by Daniel Kahn Gillmor
- Don't use isatty(0) anymore as it isn't totally reliable in determining if
we should try to read from stdin.
1.20100301.*:
- Minor libxdo patch to avoid exporting unnecessary symbols (Daniel Kahn
Gillmor)
- Minor Makefile fix to only link libxdo (and not xdotool) against libX11 and
libXtst (also Daniel Kahn Gillmor)
- Some test cleanup patches by Daniel Kahn Gillmor
- Fixed the 'type hello' test that would fail sometimes when run in Xephyr.
- Fix a minor bug in xdo_window_setclass that incorrectly aborts when
XGetClassHint fails.
1.20100227.*:
- Bump major version since there were lots of libxdo changes (now
libxdo.so.1)
- Support '--pid NUM' for searching for windows by pid:
Fixes http://code.google.com/p/semicomplete/issues/detail?id=10
Example: xdotool search --pid 12345
Example: xdotool search --pid 12345 "hello world"
- Add 'xdotool getwindowpid' command to get the pid that owns a window.
- Add --window to xdotool mousemove, click, mousedown, and mouseup
- Add --screen to xdotool mousemove
- The --clearmodifiers flag now clears mouse buttons, too.
Part of http://code.google.com/p/semicomplete/issues/detail?id=6
- The --clearmodifiers flag now clears caps lock.
Fixes http://code.google.com/p/semicomplete/issues/detail?id=4
- Have 'make install' create all required directories
Fixes http://code.google.com/p/semicomplete/issues/detail?id=17
- Support multiple screens in searches. Default is to search all screens.
Fixes http://code.google.com/p/semicomplete/issues/detail?id=11
Example: 'xdotool search --screen N' specifies a single screen to search.
- Support reading a list of xdotool commands via stdin or a file. Usages:
* read from stdin:
xdotool -
* read from stdin (use isatty(0) to detect redirection):
xdotool < somefile
* An executable script also works when it has this at the top:
#!/path/to/xdotool
0.20100118.*:
- Slight change in how we present versions. Now versions have major, date,
and svn revision. The main addition was to add the major which maps to the
libxdo library abi version (libxdo.so.0).
- Add 'xdotool version' for querying version
- libxdo now has xdo_version function for fetching the library version.
- Allow typing keys that are not mapped to any keyboard button.
For example, you can type the euro symbol like this, even if you don't have
a key on your keyboard that can do it:
xdotool key EuroSign
http://code.google.com/p/semicomplete/issues/detail?id=16
- Fixed some pod errors in the manpage
20091231.03:
- Fix regression in 'windowsize' command: --useflags stopped being accepted,
now works again. Reported by Evangelos Foutras in bug/issue #15.
20091231.02:
No functional changes.
- fix linking problems and just use $(CC) for build and linking
- Make the tests headless (requires Xvfb and GNOME)
- Make the t/run.sh test runner exit-code friendly
20091231.01:
No xdotool changes.
libxdo changes:
* Rename keysymcharmap -> keysym_charmap
* Expose keysym_charmap and symbol_map as xdo_keysym_charmap()
and xdo_symbol_map()
20091210.01:
* No functional changes.
* Added a few patches from Russel Harmon which:
+ fix some memory leaks
+ add use of getopt in all the command functions
+ some makefile fixes
+ accept more variations of someone asking for help (-help and --help)
20091210:
* No functional changes.
* Added 'soname' (shared library name/version) to libxdo.so for better
linkage. This change may break linking with non-gnu ld(1), I don't know.
20091208:
* Added documentation about 'search --maxdepth' and new command 'set_window'
* Added building of libxdo.so so other tools can link against it. This
change requested by Debian:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560103
20090815:
* Incorporate patch from Henning Bekel which adds a new ability to change
window properties such as window name, icon name, class, role, etc.
New command: xdotool set_window
* Add --maxdepth to 'xdotool search' to limit the traversal depth
20090710:
* You can clear keyboard modifiers during typing now with --clearmodifiers
When used, this flag causes physical keyboard modifiers (alt, control, etc)
that are currently active to be ignored during typing.
This is supported in: xdotool key, keyup, keydown, and type.
Example:
xdotool type 'hello world' results in 'HELLO WORLD' while holding shift.
xdotool type --clearmodifiers 'hello world' results in 'hello world'
regardless of you holding shift.
The 'reset' only happens at the beginning of typing and the modifiers are
restored at the end. If you press a modifier key *during* typing it will
act as if --clearmodifiers was not present.
(http://code.google.com/p/semicomplete/issues/detail?id=6)
* You can now specify literal keycodes for any key command.
Example: xdotool key 38 (types 'a' with my keyboard)
(requested via mailing list)
* Regression fix: 'xdotool type' now properly obeys capitalization, again.
* Bug fix: 'xdotool key --window' now works properly
20090612:
* Fixed bug where shift modifier was not reset when 'xdotool type' used.
http://code.google.com/p/semicomplete/issues/detail?id=5
20090609:
* Add '--delay <delay_in_ms>' to xdotool type. Sets the delay between keys.
* Add '--window <windowid>' to xdotool type, key, keyup, and keydown.
This feature (key events with --window <windowid>) only works if the
application does not reject X events that have 'send_event' set to true.
Special notes:
* Firefox appears to ignore all input when it does not have focus.
* xterm ignores sendevent by default, ctrl+leftclick menu will let you
enable it.
* gnome-terminal appears to accept send_event input by default
20090330:
* Fix bug where we use the wrong type in sizeof() for allocating character
code map.
* Fix tiny problem where we would try to free() an invalid pointer
20090126:
* Change the default behavior of 'getwindowfocus' to get the first
ancestor-or-self window that has WM_CLASS set. WM_CLASS will be set on
(all?) top-level windows and it's possible that the currently focused
window according to X is not a top-level window. To use the previous
behavior, use 'getwindowfocus -f'
* Make 'xdotool key at' work correctly. 'at' is usually Shift+2, for example.
Now all shifted characters should work, but I've only tested on a US
keyboard.
* Minor Makefile fixes for package maintainers.
20080720:
* Add 'getmouselocation' which outputs the coordinate of the mouse cursor and
the screen number the mouse is on.
* Add 'getactivewindow' which uses NETWM to query the active window; this is
often more reliable than 'getwindowfocus' assuming your window manager
supports it
* Fix typos in the documentation.
20080716:
* Fix return codes in xdo_keysequence() and other functions
20080606:
* Correctly report an error if xdotool is invoked with an invalid command.
* Fix invalid error code reporting from 'windowraise'
20080603:
* Daniel Kahn Gillmor reported a problem with return codes from xdotool. All
commands return proper exit status now (0 == success, nonzero == error)
* I tested on 3 window managers: Gnome2 2.20.0, OpenBox 3.4, ion-3rc-20070608
- Gnome and OpenBox pass all tests.
- ion-3 fails on any desktop-related methods (ion-3 lacks the support).
20080601:
* Add new commands:
- windowactivate: Activate a window. If the window is on another desktop,
we will switch to that desktop and then activate the window.
- set_num_desktops number: Changes the number of desktops or workspaces.
- get_num_desktops: Output the current number of desktops.
- set_desktop desktop_number: Change the current view to the specified
desktop.
- get_desktop: Output the current desktop in view.
- set_desktop_for_window window_id desktop_number: Move a window to a
different desktop.
- get_desktop_for_window window_id: Output the desktop currently containing
the given window.
windowactivate tested and confirmed working in: ion-3 and Gnome2 (metacity)
The rest of the new commands have only been tested in Gnome2. They do not
work in ion-3 due to lacking support for EWMH in ion.
* Rewrote the man page in perlpod format.
20080521:
* Import patches from keynav's xdotool branch (From Lukas Mai) which make
xdotool compile happily when building with -Wall and -pedantic (and others)
* Finally convert to using Window type for (hopefully) everything instead of
incorrectly typecasting Window to int sometimes.
* Confirmed that the one (but mostly useless) test passes.
20071230:
* Manpage contribution by Daniel Kahn Gillmor
* Add COPYRIGHT from svn to the distributed package.
20070903:
* Add xdo_mousemove_relative for relative mouse movements
* Add xdolib.sh. This is a script library to help with features xdo does not
explicitly implement, such as querying window attributes, or fetching the
root window id. An example which uses this is: examples/move_window_away.sh
20070812:
* Magnus Boman contributed keysequence_{up,down} adding new commands to
xdotool: keyup and keydown. These take the same arguments as 'key' but only
send keyup or keydown events.
* Lee Pumphret contributed getwindowfocus, which tells you the window id of
the window currently holding focus.
* Removed 'Makefile.no-pkg-config' because the original Makefile now knows
how to build for both cases: with and without pkg-config.
20070722:
* Compiles without warnings when using gcc -Wall now
* Fixed false error reporting due to some functions missing return statements
20070713:
* Add flag SIZE_USEHINTS to xdo_window_setsize
* Add flag --usehints to xdotool windowsize
Increments are used often in terminals that say "my font is 5 by 7 pixels, so
resize by that increment". So, you can use this to set a terminal to be 80x24
characters instead of pixels. Verified by resizing xterm and gnome-terminal
(with menus enabled).
20070712:
Added new search options to 'xdotool search'
--onlyvisible shows only visible windows in the results
--title causes only the window title to be matched
--name causes the window name to be matched
--class causes the window class to be matched
For information on names and classes, check out the xprop tool.
For example, for an xterm you will see this in the xprop output:
WM_CLASS(STRING) = "xterm", "XTerm"
"xterm" is the name, "XTerm" is the class. Don't ask me what the differences
are supposed to be. ;)