find5显示很抱歉,“lockscreenmanager”安卓很抱歉已停止运行行

xdotool - command-line X11 automation tool
xdotool cmd args...
Notation: Some documentation uses [window] to denote an optional
window argument. This case means that the argument, if not present, will
default to &%1&. See
for what &%1& means.
=head1 DESCRIPTION
xdotool lets you programatically (or manually) simulate keyboard input and
mouse activity, move and resize windows, etc. It does this using X11's
XTEST extension and other Xlib functions.
There is some support for Extended Window Manager Hints (aka EWMH or NetWM).
section for more information.
Send keystrokes to a specific window id. You can use
references like &%1& and &%@& here. If there is a window stack,
then &%1& is the default, otherwise the current window is used.
Clear modifiers before sending keystrokes. See CLEARMODIFIERS below.
Delay between keystrokes. Default is 12ms.
Type a given keystroke. Examples being &alt+r&, &Control_L+J&,
&ctrl+alt+n&, &BackSpace&.
Generally, any valid X Keysym string will work. Multiple keys are
separated by '+'. Aliases exist for &alt&, &ctrl&, &shift&, &super&,
and &meta& which all map to Foo_L, such as Alt_L and Control_L, etc.
In cases where your keyboard doesn't actually have the key you want to type,
xdotool will automatically find an unused keycode and use that to type the key.
With respect to , this command consumes the remainder of the
arguments or until a new xdotool command is seen, because no xdotool commands
are valid keystrokes.
Example: Send the keystroke &F2&
xdotool key F2
Example: Send 'a' with an accent over it (not on english keyboards, but still
works with xdotool)
xdotool key Aacute
Example: Send ctrl+l and then BackSpace as separate keystrokes:
xdotool key ctrl+l BackSpace
Example: Send ctrl+c to all windows matching title 'gdb' (See )
xdotool search --name gdb key ctrl+c
Same as above, except only keydown (press) events are sent.
Same as above, except only keyup (release) events are sent.
Send keystrokes to a specific window id. See
below. The
default, if no window is given, depends on the window stack. If the window
stack is empty the current window is typed at using XTEST. Otherwise, the
default is &%1& (see ).
Delay between keystrokes. Default is 12ms.
Clear modifiers before sending keystrokes. See CLEARMODIFIERS below.
Types as if you had typed it. Supports newlines and tabs (ASCII newline and
tab). Each keystroke is separated by a delay given by the --delay option.
With respect to , this command consumes the remainder of the
arguments and types them. That is, no commands can chain after 'type'.
Example: to type 'Hello world!' you would do:
xdotool type 'Hello world!'
Move the mouse to the specific X and Y coordinates on the screen.
You can move the mouse to the previous location if you specify 'restore'
instead of an X and Y coordinate. Restoring only works if you have moved
previously in this same command invocation. Further, it does not work with the
--window option.
For example, to click the top-left corner of the screen and move the mouse to
the original position before you moved it, use this:
xdotool mousemove 0 0 click 1 mousemove restore
Specify a window to move relative to. Coordinates 0,0 are at the top left of
the window you choose.
references are valid here, such as %1 and %@. Though, using %@
probably doesn't make sense.
Move the mouse to the specified screen to move to. This is only useful if you
have multiple screens and ARE NOT using Xinerama.
The default is the current screen. If you specify --window, the --screen flag
is ignored.
Use polar coordinates. This makes 'x' an angle (in degrees, 0-360, etc) and 'y'
the distance.
Rotation starts at 'up' (0 degrees) and rotates clockwise: 90 = right, 180 =
down, 270 = left.
The origin defaults to the center of the current screen. If you specify a
--window, then the origin is the center of that window.
See CLEARMODIFIERS
After sending the mouse move request, wait until the mouse is actually
moved. If no movement is necessary, we will not wait. This is useful for
scripts that depend on actions being completed before moving on.
Note: We wait until the mouse moves at all, not necessarily that it
actually reaches your intended destination. Some applications lock the
mouse cursor to certain regions of the screen, so waiting for any movement is
better in the general case than waiting for a specific target.
Move the mouse x,y pixels relative to the current position of the mouse cursor.
Use polar coordinates. This makes 'x' an angle (in degrees, 0-360, etc) and 'y'
the distance.
Rotation starts at 'up' (0 degrees) and rotates clockwise: 90 = right, 180 =
down, 270 = left.
After sending the mouse move request, wait until the mouse is actually
moved. If no movement is necessary, we will not wait. This is useful for
scripts that depend on actions being completed before moving on.
Note that we wait until the mouse moves at all, not necessarily that it
actually reaches your intended destination. Some applications lock the mouse
cursor to certain regions of the screen, so waiting for any movement is better
in the general case than waiting for a specific target.
See CLEARMODIFIERS
Send a click, that is, a mousedown followed by mouseup for the given button
with a short delay between the two (currently 12ms).
Buttons generally map this way: Left mouse is 1, middle is 2, right is 3,
wheel up is 4, wheel down is 5.
Clear modifiers before clicking. See CLEARMODIFIERS below.
Specify how many times to click. Default is 1. For a double-click, use
'--repeat 2'
Specify how long, in milliseconds, to delay between clicks. This option is not
used if the --repeat flag is set to 1 (default).
Specify a window to send a click to. See
below for caveats. Uses the
current mouse position when generating the event.
The default, if no window is given, depends on the window stack. If the window
stack is empty the current window is typed at using XTEST. Otherwise, the
default is &%1& (see ).
Same as click, except only a mouse down is sent.
Same as click, except only a mouse up is sent.
Outputs the x, y, screen, and window id of the mouse cursor. Screen numbers will
be nonzero if you have multiple monitors and are not using Xinerama.
This makes getmouselocation output shell data you can eval. Example:
% xdotool getmouselocation --shell
% eval $(xdotool getmouselocation --shell)
% echo $X,$Y
Bind an action to events when the mouse hits the screen edge or corner.
Options are:
Delay in milliseconds before running the command. This allows you to require
a given edge or corner to be held for a short period before your command will
run. If you leave the edge or corner before the delay expires then the time
will reset.
Delay in milliseconds before the next command will run. This helps prevent
accidentally running your especially useful if you have
a very short --delay (like the default of 0).
Event timeline
* Mouse hits an edge or corner.
* If delay is nonzero, the mouse must stay in this edge or corner until delay time expires.
* If still in the edge/corner, trigger.
* If quiesce is nonzero, then there is a cool-down period where the next
trigger cannot occur
Valid 'where' values are:
# Activate google-chrome when you move the mouse to the bottom-left corner:
xdotool behave_screen_edge bottom-left \
search --class google-chrome windowactivate
# Go to the next workspace (right). Known to work in GNOME (metacity and compiz)
xdotool behave_screen_edge --delay 500 bottom-right key XF86Forward
# Activate firefox and do a web search in a new tab for text in your clipboard
xdotool behave_screen_edge --delay 1000 top-left \
search --classname Navigator \
windowactivate --sync key --delay 250 ctrl+t ctrl+k ctrl+v Return
Search for windows with titles, names, or classes with a regular expression
pattern. The output is line-delimited list of X window identifiers. If you
are using , the search command will only write window
ids to stdout if it is the last (or only)
otherwise, it
is silent.
The result is saved to the window stack for future chained commands. See
for details.
The default options are --name --class --classname (unless you specify one
one or more of --name --class or --classname).
The options available are:
Match against the window class.
Match against the window classname.
Set recursion/child search depth. Default is -1,
meaning infinite. 0 means no depth, only root windows will be searched. If you
only want toplevel windows, set maxdepth of 1 (or 2, depending on how your
window manager does decorations).
Match against the window name. This is the same string that is displayed in the
window titlebar.
Show only visible windows in the results. This means ones with map state
IsViewable.
Match windows that belong to a specific process id. This may not work for some
X applications that do not set this metadata on its windows.
Select windows only on a specific screen. Default is to
search all screens. Only meaningful if you have multiple displays and are not
using Xinerama.
Only match windows on a certain desktop. 'N' is a number. The default
is to search all desktops.
Stop searching after finding N matching windows. Specifying a limit will help
speed up your search if you only want a few results.
The default is no search limit (which is equivalent to '--limit 0')
DEPRECATED. See --name.
Require that all conditions be met. For example:
xdotool search --all --pid 1424 --name &Hello World&
This will match only windows that have &Hello World& as a name and are owned by
Match windows that match any condition (logically, 'or'). This is on by
default. For example:
xdotool search --any --pid 1424 --name &Hello World&
This will match any windows owned by pid 1424 or windows with name &Hello
Block until there are results. This is useful when you are launching an
application want want to wait until the application window is visible.
For example:
google-chrome &
xdotool search --sync --onlyvisible --class &google-chrome&
Get the window id (for a client) by clicking on it. Useful for having scripts
query you humans for what window to act on. For example, killing a window by
clicking on it:
xdotool selectwindow windowkill
Bind an action to an event on a window. This lets you run additional xdotool
commands whenever a matched event occurs.
The command run as a result of the behavior is run with %1 being the window
that was acted upon. Examples follow after the event list.
The following are valid events:
Fires when the mouse enters a window. This is similar to 'mouse over' events in
javascript, if that helps.
Fires when the mouse leaves a window. This is the opposite of 'mouse-enter'
Fires when the mouse is clicked. Specifically, when the mouse button is released.
Fires when the window gets input focus.
Fires when the window loses focus.
# Print the cursor location whenever the mouse enters a currently-visible
xdotool search --onlyvisible . behave %@ mouse-enter getmouselocation
# Print the window title and pid whenever an xterm gets focus
xdotool search --class xterm behave %@ focus getwindowname getwindowpid
# Emulate focus-follows-mouse
xdotool search . behave %@ mouse-enter windowfocus
Output the PID owning a given window. This requires effort from the application
owning a window and may not work for all windows. This uses _NET_WM_PID
property of the window. See
below for more
information.
If no window is given, the default is '%1'. If no windows are on the stack, then
this is an error. See
for more details.
Example: Find the PID for all xterms:
xdotool search --class xterm getwindowpid %@
Output the name of a given window, also known as the title. This is the text
displayed in the window's titlebar by your window manager.
If no window is given, the default is '%1'. If no windows are on the stack, then
this is an error. See
for more details.
Output the geometry (location and position) of a window. The values include: x,
y, width, height, and screen number.
Output values suitable for 'eval' in a shell.
Prints the window id of the currently focused window. Saves the result to the
window stack. See
for more details.
If the current window has no WM_CLASS property, we assume it is not a normal
top-level window and traverse up the parents until we find a window with a
WM_CLASS set and return that window id.
If you really want the window currently having focus and don't care if it has a
WM_CLASS setting, then use 'getwindowfocus -f'
Set the window size of the given window. If no window is given, %1 is the
for more details.
Percentages are valid for width and height. They are relative to the geometry
of the screen the window is on. For example, to make a window the full width of
the screen, but half height:
xdotool windowsize I&window& 100% 50%
Percentages are valid with --usehints and still mean pixel-width relative to
the screen size.
The options available are:
Use window sizing hints (when available) to set width and height.
useful on terminals for setting the size based on row/column of text rather
than pixels.
After sending the window size request, wait until the window is actually
resized. If no change is necessary, we will not wait. This is useful for
scripts that depend on actions being completed before moving on.
Note: Because many window managers may ignore or alter the original resize
request, we will wait until the size changes from its original size, not
necessary to the requested size.
Example: To set a terminal to be 80x24 characters, you would use:
xdotool windowsize --usehints some_windowid 80 24
Move the window to the given position. If no window is given, %1 is the
default. See
for more details.
If the given x coordinate is literally 'x', then the window's current x
position will be unchanged. The same applies for 'y'.
xdotool getactivewindow windowmove 100 100
# Moves to 100,100
xdotool getactivewindow windowmove x 100
# Moves to x,100
xdotool getactivewindow windowmove 100 y
# Moves to 100,y
xdotool getactivewindow windowmove 100 y
# Moves to 100,y
After sending the window move request, wait until the window is actually
moved. If no movement is necessary, we will not wait. This is useful for
scripts that depend on actions being completed before moving on.
Make movement relative to the current window position.
Focus a window. If no window is given, %1 is the default. See
for more details.
Uses XSetInputFocus which may be ignored by some window managers or programs.
After sending the window focus request, wait until the window is actually
focused. This is useful for scripts that depend on actions being completed
before moving on.
Map a window. In X11 terminology, mapping a window means making it visible on
the screen. If no window is given, %1 is the default. See
for more details.
After requesting the window map, wait until the window is actually mapped
(visible). This is useful for scripts that depend on actions being completed
before moving on.
Minimize a window. In X11 terminology, this is called 'iconify.'
If no window is given, %1 is the default. See
for more details.
After requesting the window minimize, wait until the window is actually
minimized. This is useful for scripts that depend on actions being completed
before moving on.
Raise the window to the top of the stack. This may not work on all window
managers. If no window is given, %1 is the default. See
for more details.
Reparent a window. This moves the source_window to be a child window of
destination_window. If no source is given, %1 is the default.
window references (like %1) are valid for both source_window
and destination_window See
Kill a window. This action will destroy the window and kill the client
controlling it. If no window is given, %1 is the default. See
for more details.
Unmap a window, making it no longer appear on your screen. If no window is
given, %1 is the default. See
After requesting the window unmap, wait until the window is actually unmapped
(hidden). This is useful for scripts that depend on actions being completed
before moving on.
Set properties about a window. If no window is given, %1 is the default. See
for more details.
Set window WM_NAME (the window title, usually)
Set window WM_ICON_NAME (the window title when minimized, usually)
Set window WM_WINDOW_ROLE
Set window class name (not to be confused with window class)
Set window class (not to be confused with window class name)
Set window's override_redirect value. This value is a hint to the window
manager for whether or not it should be managed. If the redirect value is 0,
then the window manager will draw borders and treat this window normally. If
the value is 1, the window manager will ignore this window.
If you change this value, your window manager may not notice the change until
the window is mapped again, so you may want to issue 'windowunmap' and
'windowmap' to make the window manager take note.
These commands follow the EWMH standard. See the section
for more information.
Activate the window. This command is different from windowfocus:
if the window is on another desktop, we will switch to that desktop. It also
uses a different method for bringing the window up. I recommend trying this
command before using windowfocus, as it will work on more window managers.
If no window is given, %1 is the default. See
for more details.
After sending the window activation, wait until the window is actually
activated. This is useful for scripts that depend on actions being completed
before moving on.
Output the current active window. This command is often more reliable than
getwindowfocus. The result is saved to the window stack. See
for more details.
Changes the number of desktops or workspaces.
Output the current number of desktops.
Report the current viewport's position. If --shell is given, the output is
friendly to shell eval.
Viewports are sometimes used instead of 'virtual desktops' on some window
managers. A viewport is simply a view on a very large desktop area.
Move the viewport to the given position. Not all requests will be obeyed - some
windowmangers only obey requests that align to workspace boundaries, such as
the screen size.
For example, if your screen is , you can move to the 2nd workspace by doing:
xdotool set_desktop_viewport 1280 0
Change the current view to the specified desktop.
Use relative movements instead of absolute. This lets you move relative to the
current desktop.
Output the current desktop in view.
Move a window to a different desktop. If no window is given, %1 is the
default. See
for more details.
Output the desktop currently containing the given window. Move a window to a
different desktop. If no window is given, %1 is the default. See
for more details.
Execute a program. This is often useful when combined with behave_screen_edge
to do things like locking your screen.
Block until the child process exits. The child process exit status is then
passed to the parent process (xdotool) which copies it.
# Lock the screen when the mouse sits in the top-right corner
xdotool behave_screen_edge --delay 1000 top-right \
exec gnome-screensaver-command --lock
# Substitute 'xscreensaver-command -lock' if you use that program.
# The following will fail to move the mouse because we use '--sync' and
# /bin/false exits nonzero:
xdotool exec --sync /bin/false mousemove 0 0
# This succeeds, though, since we do not use --sync on the exec command.
xdotool exec /bin/false mousemove 0 0
Sleep for a specified period. Fractions of seconds (like 1.3, or 0.4) are
valid, here.
xdotool can read a list of commands via stdin or a file if you want. A script
will fail when any command fails.
Truthfully, 'script' mode isn't fully fleshed out and may fall below your
expectations. If you have suggestions, please email the list or file a bug (See
Scripts can use positional arguments (Represented by $1, $2, ...) and
environment variables (like $HOME or $WINDOWID). Quoting arguments should work
as expected.
Scripts are processed for parameter and environment variable expansion and then
run as if you had invoked xdotool with the entire script on one line (using
COMMAND CHAINING).
xdotool filename
xdotool - & myfile
You can also write scripts that only execute xdotool. Example:
#!/usr/local/bin/xdotool
search --onlyvisible --classname $1
windowsize %@ $2 $3
windowraise %@
windowmove %1 0 0
windowmove %2 $2 0
windowmove %3 0 $3
windowmove %4 $2 $3
This script will take all windows matched by the classname query given by arg1
($1) and sizes/moves them into a 2x2 grid with windows sized by the 2nd and 3rd
parameters.
Here's an example usage:
% ./myscript xterm 600 400
Running it like this will take 4 visible xterms, raise them, and move them into
a 2x2 tile grid with each window 600x400 pixels in size.
Any command taking the --clearmodifiers flag will attempt to clear any
active input modifiers during the command and restore them afterwards.
For example, if you were to run this command:
xdotool key a
The result would be 'a' or 'A' depending on whether or not you were holding the
shift key on your keyboard. Often it is undesirable to have any modifiers
active, so you can tell xdotool to clear any active modifiers.
The order of operations if you hold shift while running 'xdotool key --clearmodifiers a' is this:
The --clearmodifiers flag can currently clear of the following:
's 'xmodmap -pm' output)
If you are trying to send key input to a specific window, and it does not
appear to be working, then it's likely your application is ignoring the events
xdotool is generating. This is fairly common.
Sending keystrokes to a specific window uses a different API than simply typing
to the active window. If you specify 'xdotool type --window 12345 hello'
xdotool will generate key events and send them directly to window 12345.
However, X11 servers will set a special flag on all events generated in this
way (see XEvent.xany.send_event in X11's manual). Many programs observe this
flag and reject these events.
It is important to note that for key and mouse events, we only use
XSendEvent when a specific window is targeted. Otherwise, we use .
Some programs can be configured to accept events even if they are generated by
xdotool. Seek the documentation of your application for help.
Specific application notes (from the author's testing):
* Firefox 3 seems to ignore all input when it does not have focus.
* xterm can be configured while running with ctrl+leftclick, 'Allow SendEvents'
* gnome-terminal appears to accept generated input by default.
Certain commands (search, getactivewindow, getwindowfocus) will find windows
for you. These results generally printed to stdout, but they are also saved
to memory for future use during the lifetime of the xdotool process. See
for more information.
The only modifications support for the window stack are to replace it. That is,
two of two sequential searches, only the last one's results will be the window
xdotool supports running multiple commands on a single invocation. Generally,
you'll start with a search command (see ) and then perform a
set of actions on those results.
To query the window stack, you can use special notation &%N& where N is a
number or the '@' symbol. If %N is given, the Nth window will be selected from
the window stack. Generally you will only want the first window or all windows.
Note that the order of windows in the window stack corresponds to the window
stacking order, i.e. the bottom-most window will be reported first (see
XQueryTree(3)). Thus the order of the windows in the window stack may not be
consistent across invocations.
The notation described above is used as the &window& argument for any given
For example, to resize all xterms to 80x24:
xdotool search --class xterm -- windowsize --usehints %@ 80 24
Resize move the current window:
xdotool getactivewindow windowmove 0 0
In all cases, the default window argument, if omitted, will default to &%1&. It is
obviously an error if you omit the window argument and the window stack is empty. If you
try to use the window stack and it is empty, it is also an error.
To activate the first firefox window found:
xdotool search --class firefox windowactivate
These would error:
xdotool windowactivate
xdotool windowactivate %1
xdotool windowactivate %@
When xdotool exits, the current window stack is lost.
Additinally, commands that modify the
will not print the
results if they are not the last command. For example:
# Output the active window:
% xdotool getactivewindow
# Output the pid of the active window, but not the active window id:
% xdotool getactivewindow getwindowpid
The following pieces of the EWMH standard are supported:
Asks the window manager what is supported
Query and set the current desktop. Support for this enables these commands:
set_desktop, .
Query and set what desktop a window is living in. Support for this enables
these commands: set_desktop_for_window, get_desktop_for_window.
Allows you to query and set the active window by asking the window manager to
bring it forward. Support for this enables these commands: windowactivate, .
This feature is application dependent, not window-manager dependent. Query the
PID owning a given window. Support for this enables these commands:
getwindowpid.
xdotool (and libxdo) will try to function under all circumstances. However, there may
be some cases where functionality is not provided by your X server or by your
window manager. In these cases, xdotool will try to detect and tell you if an action
requires a feature not currently supported by your system.
For window-manager specific features, see .
If your X server does not support XTEST, then some typing and mouse movement
features may not work. Specifically, typing and mouse actions that act on the
&current window& (window 0 in libxdo) are unlikely to work.
In most cases, XTEST is a feature you can enable on your X server if it is
not enabled by default.
You can see the list of supported X extensions by typing 'xdpyinfo' and looking
the text 'number of extensions: ...'
xprop(1), xwininfo(1),
Project site:
Google Code:
EWMH specification:
Please send questions to
File bugs and feature requests at the following URL:
Alternately, if you prefer email, feel free to file bugs by emailing the list.
What works for you :)
xdotool was written by Jordan Sissel.
This manual page was written originally by Daniel Kahn Gillmor
&& for the Debian project (but may be
used by others). It is maintained by Jordan Sissel.
Patches, ideas, and other contributions by many, nice folks. See the CHANGELIST
file for who provided what.}

我要回帖

更多关于 很抱歉 已停止运行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信