gpm - una utilidad para cortar y pegar y un servidor de ratón para las
consolas virtuales
gpm [
opciones ]
Este paquete intenta ser un servidor de raton útil para las aplicaciones
que se ejecutan en la consola de Linux. Está basado en el paquete
llamado "selección", y algunas partes de su código
provienen de dicho paquete. Este paquete está pensado para reemplazar
el paquete "selección" como mecanismo de cortar y pegar;
además ofrece mejoras adicionales. El paquete "seleccion"
ofrecía una primera implementación del método de cortar y
pegar para Linux usando dos botones del ratón, así, la memoria
intermedia usada al cortar todavía se sigue denominando buffer de
selección o simplemente "selección" en este documento.
La información contenida en este documento ha sido extraida del fichero
de Texinfo, que es la fuente de información recomendada actualmente.
El ejecutable de gpm actúa como un demonio (así que gpmd
sería un nombre más acertado para él). Esta
sección describe las opciones de la línea de órdenes de
gpm, mientras que los detalles internos son comentados en la siguiente
sección.
Debido a las restricciones impuestas por la llamada a sistema ioctl(TIOCLINUX),
gpm debe ser ejecutado por el superusuario. Dichas restricciones fueron
añadidas a partir de la versión 1.1 del kernel para solucionar
un agujero de seguridad relacionado con la selección y el vaciado de
memoria en pantalla.
The server can be configured to match the user's taste, and any application
using the mouse will inherit the server's attitude. From release 1.02 up to
1.19.2 is was possible for any user logged on the system console to change the
mouse feeling using the -q option. This is no longer possible for security
reasons.
Igualmente, desde la versión 0.97, el servidor se pone a si mismo en
segundo plano. Para matar el servidor gpm, simplemente se puede ejecutar con
el parámetro -k, de todas maneras, "killall gpm" puede ser
otra solución.
La versión 1.10 introduce la capacidad de ejecutar órdenes
especiales bajo ciertas circunstancias. Por defecto, estas órdenes
especiales son rebotar y parar el sistema, pero el usuario puede especificar
cualquier otra orden. La posibilidad de invocar órdenes usando el
ratón es muy útil para programadores, ya que permite rebotar o
parar el sistema de manera ordenada cuando el teclado está bloqueado y
no hay red disponible para devolver el sistema a un estado consistente.
Las órdenes especiales son ejecutados haciendo un triple clic sobre los
botones izquierdo y derecho a la vez (un evento poco probable durante el uso
normal del ratón). La manera más fácil de realizar un
triple clic es pulsar uno de los dos botones y hacer un triple clic sobre el
otro. Cuando se ejecuta esta acción, se pasa a un modo de trabajo
especial, un mensaje aparece en la consola y el altavoz del sistema emite dos
pitidos (si se tiene altavoz); si el usuario suelta todos los botones y pulsa
otra vez sobre uno de ellos antes de tres segundos, entonces la orden especial
asociado al botón es ejecutado.
Las órdenes especiales ejecutadas por defecto son:
- botón izquierdo:
- Rebotar el sistema mediante el envío de una
señal al proceso init
- botón central (si existe):
- Ejecutar `/sbin/shutdown -h now'
- botón derecho:
- Ejecutar `/sbin/shutdown -r now'
El parámetro -S de la línea de órdenes habilita las
órdenes especiales y permite modificar los tres especificados por
defecto. Para usar las órdenes especiales propuestos por defecto, usar
`-S ""' (es decir, especificar un argumento vacío a -S). Para
especificar otras órdenes, usar una lista separada por el
carácter dos puntos (:) para especificar las órdenes asociados a
los botones izquierdo, central y derecho respectivamente. Si alguna de las
órdenes está vacía, será interpretado como `enviar
un signal al proceso init'. En vez de ejecutar órdenes externas, este
comportamiento tan particular está soportado por que algunas
situaciones extrañas pueden llevar al sistema a un estado tal que sea
imposible ejecutar más programas mediante la llamada a sistema fork();
ante esta improbable situación, el usuario será capaz de apagar
el sistema de manera ordenada. Matar el proceso init desde un proceso que se
esté ejecutando es la única manera de lograrlo.
Como ejemplo, `-S ":telinit 1:/sbin/halt"', asocia el envío de
la señal para matar al proceso init al botón izquierdo, pasar a
modo monousuario al botón central, y parar el sistema al botón
derecho.
Evidentemente, los administradores del sistema tendrán que ir con cuidado
con las órdenes especiales, ya que gpm se ejecuta con los permisos del
superusuario. Las órdenes especiales están pensados para
ordenadores donde el ratón está disponible únicamente
para usuarios de confianza.
Las opciones de la línea de órdenes disponibles son las
siguientes:
- -a acel
- Fija la aceleración usada cuando se mueve el
ratón por un tiempo superior a delta (ver
"-d")
- -A[límite]
- Start up with selection pasting disabled. This is intended
as a security measure; a plausible attack on a system seems to be to stuff
a nasty shell command into the selection buffer (`rm -rf /') including the
terminating line break, then all the victim has to do is click the middle
mouse button .. As of version 1.17.2, this has developed into a more
general aging mechanism; the gpm daemon can disable (age) selection
pasting automatically after a period of inactivity. To enable this mode
just give the optional limit parameter (no space in between !)
which is interpreted as the time in seconds for which a selection is
considered valid and pastable. As of version 1.15.7, a trivial program
called `disable-paste' is provided. The following makes a good addition to
`/etc/profile' if you allow multiple users to work on your console.
`case $( /usr/bin/tty ) in
/dev/tty[0-9]*) /usr/bin/disable-paste ;;
esac'
- -b baudios
- Fija la velocidad en baudios.
- -B secuencia
- Fija la secuencia de los botones. “123” es la
secuencia normal, “321” puede ser útil para los
usuarios zurdos, y “132”puede ser útil con los
ratones que únicamente poseen dos botones (especialmente dentre de
Emacs). Todas las permutaciones posibles son permitidas.
- -d delta
- Fija el valor delta. Cuando se mueve el ratón por un
tiempo superior a delta, el parámetro acel es usado
como factor multiplicativo. (Debe ser 2 o superior)
- -D
- No ejecutar automáticamente en segundo plano cuando
el programa comienza, y mostrar los mensajes a la salida de error
estándar y no mediante el mecanismo de syslog. Este
parámetro es útil para corregir errores; en versiones
anteriores, se hacía mediante una opción en tiempo de
compilación.
- -g número
- Con dispositivos de planeo, emula el botón
especificado con un ligero golpe. El número debe ser 1, 2 o
3, y se refiere al número antes que se haya remapeado con el
parámetro -B. Esta opción se aplica a los decodificadores
mman y ps2. Por defecto, no se emula ningún botón, ya que el
efecto de golpe ligero en los dispositivos ps2 es incompatible con algunos
ratones ps2 normales.
- -h
- Imprime por pantalla un resumen de los parámetros de
la línea de órdenes.
- -i intervalo
- Fija el intervalo a usar como el límite
superior para los clics múltiples. Si el intervalo entre que se
aprieta el botón y se suelta es menor que el límite,
la pulsación se considera como un doble o triple clic. El tiempo se
mide en milisegundos.
- -k
- Mata un gpm que se esté ejecutando. Este
parámetro puede ser usado si se posee un ratón del tipo
"busmouse" antes de entrar en Xwindow (a menos que se use
-R o la limitación de apertura única (single-open)
sea eliminada del núcleo del sistema operativo).
- -l juego_de_carácteres
- Choose the `inword()' look up table. The charset
argument is a list of characters. `-' is used to specify a range and `\ '
is used to escape the next character or to provide octal codes. Only
visible character can appear in charset because control characters
can't appear in text-mode video memory, whence selection is cut.
- -m nombre_de_fichero
- Choose the mouse file to open. Must be before -t and
-o.
- -M
- Activa el modo múltiple. El demonio leera dos
dispositivos de ratón diferentes. Cualquier opción
especificada a posteriori se referirá al segundo dispositivo,
mientras que las opciones especificadas a priori se referirán al
primer dispositivo. Esta opción automáticamente actica la
opción “repetir” (-R).
- -o list-of-extra-options
- The option works similarly to the “-o” option
of mount; it is used to specify a list of “extra options”
that are specific to each mouse type. The list is comma-separated. The
options `dtr', `rts' or `both' are used by the serial initialization to
toggle the modem lines like, compatibly with earlier gpm versions; note
however that using -o dtr associated with non-plain-serial mouse types may
now generate an error. And by the way, use -o after -m and after -t.
- -p
- Especifica que el puntero sea visible mientras se
selecciona. Este es el comportamiento de selection-1.7, pero a veces
confunde. El comportamiento por defecto es no enseñar el puntero,
la cual cosa tambien puede confundir.
- -r número
- Set the responsiveness as a percentage of motion (1 to 100,
default 10). A lower number can be used to slow down cursor motion, this
can not be used to make a mouse move faster, see `-a'.
- -R[nombre]
- Causes `gpm' to act as a repeater: any mouse data received
while in graphic mode will be produced on the fifo `/dev/gpmdata' in
protocol name, given as an optional argument (no space in between
!). In principle, you can use the same names as for the `-t' option,
although repeating into some protocols may not be implemented for a while.
In addition, you can specify `raw' as the name, to repeat the mouse
data byte by byte, without any protocol translation. If name is
omitted, it defaults to `msc'. Using gpm in repeater mode, you can
configure the X server to use its fifo as a mouse device. This option is
useful for bus-mouse owners to override the single-open limitation. It is
also an easy way to manage those stupid dual-mode mice which force you to
keep the middle button down while changing video mode. The option is
forced on by the `-M' option.
- -s número
- Fija la velocidad de muestreo para el ratón.
- -S órdeness
- Permite las órdenes especiales, y opcionalmente
define las órdenes propias como una lista separada por el
carácter dos puntos (:). Ver más arriba para una
explicación detallada de las órdenes especiales.
- -t nombre
- Set the mouse type. Use `-t help' to get a list of
allowable types. Use -t after you selected the mouse device with -m.
- -v
- Imprime información sobre la versión y
acaba.
- -2
- Obliga a que el ratón tenga dos botones. Esto
significa que el botón central, si existe en el ratón, se
comportará exactamente igual que el botón de la
derecha.
- -3
- Obliga a que el ratón tenga tres botones. Por
defecto el ratón se supone que tendrá dos botones hasta que
se pulsa el botón central. Si realmente existen los tres botones,
el de la derecha es usado para extender la selección, y el central
para pegarla. ¡Cuidado! si se utiliza el parámetro -3 con
ratones de dos botones, no será posible pegar la selección
que se haya hecho.
Para seleccionar texto, pulsar el botón izquierdo y arrastrar el
ratón. Para pegar el texto seleccionado, en la misma u otra consola,
pulsar el botón central. El botón derecho es usado para extender
la selección, como en `xterm'.
En los ratones de dos botones se utiliza el botón derecho para pegar el
texto seleccionado.
Double and triple clicks select whole word and whole lines. Use of the `-p'
option is recommended for best visual feedback.
Si se selecciona un espacio en blanco al final de una oración, y no hay
ningún otro texto hasta el final de la línea, el resto de la
línea será seleccionado automáticamente. Si se selecciona
un grupo de líneas, los espacios del final de cada línea
serán eliminados del buffer de selección.
Cualquier salida que se haga a la consola virtual que tenga una selección
de texto marcada hará que la marca de texto seleccionado sea eliminada
de la pantalla a fin de mantener la integridad de la misma, aunque el
contenido del buffer de selección no se verá afectado.
El mecanismo de selección es desactivado si la consola virtual pasa a
modo gráfico, por ejemplo cuando se ejecuta X11, y se restaura cuando
se vuelve a modo texto. (Ver la sección de errores más abajo)
El servidor gpm puede tener algunos problemas cuando interactúa con las
X: si el ratón es un dispositivo de apertura única
(single-open), un ratón del tipo "bus-mouse", por ejemplo, se
debería manar gpm antes de ejecutar las X, o usar la opción
“-R” (ver más arriba). Para matar al servidor gpm
simplemente invocar gpm -k. Este problema no es aplicable a ratones conectados
al puerto serie.
Dos instancias de gpm no pueden ejecutarse en el mismo sistema. Si se dispone de
dos ratones, usar la opción “-M” (ver más arriba).
Cuando la consola actual está en modo gráfico, gpm duerme hasta
que se vuelve a modo texto (a menos que se especifique -R). Así, no
responderá a los clientes. De todas formas, es poco probable que los
clientes que estén impacientes esperando al ratón molesten en
las consolas distintas a la actual.
The clients shipped out with gpm are not updated, thus there are potential
security risks when using them.
Andrew Haylett <[email protected]> (the original selection code)
Ian Zimmerman <[email protected]> (old maintainer)
Alessandro Rubini <[email protected]> (old maintainer (still helps a lot))
Nico Schottelius <[email protected]> (maintainer)
Muchos, muchos colaboradores, tanto del paquete "selection" como de gpm.
The current maintainer is Nico Schottelius. But without the help of Alessandro
Rubini and the mailing list it would be impossible for me to maintain gpm. The
development mailing list can be reached under
[email protected]. More
information on the list is in the README file part of the source distribution
of gpm.
/var/run/gpm.pid El PID del servidor gpm en ejecución
/dev/gpmctl Un enchufe (socket) de control para
los clientes
/dev/gpmdata La cola que se comporta como demonio
repetidor (-R)
gpm-types(7) Description of current pointer types supported by gpm
El archivo info sobre `gpm', el cual da una completa información y
explica como escribir un cliente gpm.
La traducción al español de esta página del manual fue
creada por Javi Diaz <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]