Provided by:
manpages-es-extra_0.8a-16_all 
NOMBRE
gpm - una utilidad para cortar y pegar y un servidor de ratón para las
consolas virtuales
SINOPSIS
gpm [ opciones ]
DESCRIPCIÓN
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 comando 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.
El servidor puede ser configurado según las preferencias del usuario, y
cualquier aplicación que utilice el ratón seguirá las preferencias
dictaminadas al servidor. Desde la versión 1.02, el comportamiento del
ratón puede ser reconfigurado por cada usuario que entre en la consola
del sistema. Véase la descripción del parámetro ‘‘-q’’.
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.
COMANDOS ESPECIALES
La versión 1.10 introduce la capacidad de ejecutar comandos especiales
bajo ciertas circunstancias. Por defecto, estos comandos especiales son
rebotar y parar el sistema, pero el usuario puede especificar cualquier
otro comando. La posibilidad de invocar comandos 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.
Los comandos 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 el comando especial asociado al botón es ejecutado.
Los comandos especiales ejecutados 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 comandos habilita los comandos
especiales y permite modificar los tres especificados por defecto. Para
usar los comandos especiales propuestos por defecto, usar ‘-S ""’ (es
decir, especificar un argumento vacío a -S). Para especificar otros
comandos, usar una lista separada por el carácter dos puntos (:) para
especificar los comandos asociados a los botones izquierdo, central y
derecho respectivamente. Si alguno de los comandos está vacío, será
interpretado como ‘enviar un signal al proceso init’. En vez de
ejecutar comandos externos, 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 los comandos especiales, ya que gpm se ejecuta con los
permisos del superusuario. Los comandos especiales están pensados para
ordenadores donde el ratón está disponible únicamente para usuarios de
confianza.
OPCIONES DE LA LÍNEA DE COMANDOS
Las opciones de la línea de comandos 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 Arranca el servidor con la opción de pegar desactivada. Esta
opción está pensada como una medida de seguridad; un posible
ataque al sistema podria ser introducir un comando desagradable
en el buffer de selección (rm -rf /) incluyendo el retorno de
carro final, en este caso cualquier víctima que pulsase el botón
central del ratón .. Con el tiempo necesario, esperamos
desarrollar un mecanismo más general de envejecimiento; el
demonio de gpm vaciará automáticamente el buffer de selección al
pasar un periodo de inactividad (edad). A partir de la versión
1.15.7, se proporciona un programa trivial llamado "disable-
paste", que ejecuta "gpm -A -q". Esto es así por que el último
comando, al igual que "gpm -q" en general, necesita los
privilegios del superusuario; "disable-paste" se instala con el
bit de setuid activado hacia el superusuario. La siguiente
secuencia puede ser añadida en /etc/profile si se permite
trabajar a diversos usuarios en la consola.
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
comandos.
-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
Especifica la tabla de traducción de inword(). El parámetro
juego_de_carácteres es una lista de carácteres. "-" se usa para
especificar un rango y " como secuencia de escape del siguiente
carácter o para especificar códigos octales. Únicamente se
pueden especificar carácteres visibles, ya que los carácteres de
control no aparecen en la memoria de vídeo en modo texto, una
vez que el texto seleccionado ha sido cortado.
-m nombre_de_fichero
Especifica el nombre del fichero correspondiente al ratón. Por
defecto se coge /dev/mouse.
-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 líneas
Conmuta las líneas del módem. El argumento "líneas" puede ser
‘‘dtr’’, ‘‘rts’’ o ‘‘both’’. Este parámetro es necesario para
algunos ratones extraños conectados a través de la línea serie.
-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.
-q Acaba después de cambiar el comportamiento del ratón. Este
parámetro está pensado para permitir a los usuarios modificar el
estado del ratón (-a, -B, -d, -i, -l, -p, -r, -V, -A) sin
rearrancar el servidor. Como este parámetro requiere permisos de
superusuario, el administrador del sistema pueden usar los bits
de "setuid" para permitir su uso por parte de los usuarios. El
cambio de los parámetros del ratón está solamente permitido
desde una de las consolas virtuales. Las opciones son
trasferidas únicamente al primer ratón.
-r numero
Fija la sensibilidad del ratón. Una sensibilidad mayor provoca
que el ratón se mueva más rápido.
-R Provoca que gpm se comporte como un repetidos: cualquier dato
recibido del ratón mientras se está en modo gráfico será
reenviado al fichero /dev/gpmdata, que se comporta como una cola
(fifo), siguiendo el protocolo "mouse-system". Esto significa
que se puede configurar el servidor X para que utilice este
fichero como dispositivo de ratón. Este parámetro es útil para
los usuarios que posean un ratón del tipo "bus-mouse", ya que
podrán invalidar la limitación de abrir únicamente un raton
(single-open). También una manera sencilla de manejar esos
estúpidos ratones con modo dual, que te obligan a mantener
apretado el botón central mientras se cambia el modo de vídeo.
Este parámetro se activa si se utiliza el parámetro -M.
-s número
Fija la velocidad de muestreo para el ratón.
-S comandos
Permite los comandos especiales, y opcionalmente define los
comandos propios como una lista separada por el carácter dos
puntos (:). Ver más arriba para una explicación detallada de los
comandos especiales.
-t nombre
Especifica el tipo de ratón. Usar "-t help" para obtener una
lista de los tipos de ratón permitidos.
-v Imprime información sobre la versión y acaba.
-V incremento de información
Especifica el nivel máximo de mensajes que serán mostrados. Así,
un número positivo tiene el efecto de incrementar el número de
mensajes de información mostrados. También se puede especificar
un valor negativo para silenciar el programa; sin embargo,
nótese que debido a las reglas de getopt(3) , un valor negativo
debe ser especificado justo detrás del parámetro, sin ningún
espacio entre ellos (o sea, -V-1 pero no -V -1). El valor
numérico es opcional y su valor por defecto es 1.
-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.
MODO DE OPERACIÓN
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.
Los dobles y triples clics seleccionan toda la palabra y toda la línea
respectivamente. Se recomienda el uso de la opción ‘-P’ para obtener un
efecto visual mejor.
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)
ERRORES
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.
Las versiones anteriores a la 1.0 de gpm tienen problemas con las
versiones 1.2.9 del kernel, ya que los clientes tienen que tener
permisos de escritura sobre /dev/gpmctl. Se debería invocar chmod sobre
dicho nodo o instalar la versión 1.0 o posteriores de gpm (si tienes
este documento, tienes la versión actualizada)
AUTORES
Andrew Haylett <ajh@gec-mrc.co.uk> (el código de selección original)
Alessandro Rubini <rubini@linux.it> (nuevas características)
Muchos, muchos colaboradores, tanto del paquete "selection" como de gpm.
MANTENIMIENTO
Desde la versión 1.14 yo realizo exclusivamente el mantenimiento. Ian
Zimmerman y Prosa Inc respaldarán el desarrollo de gpm. El punto de
contacto oficial es actualmente la lista de correo gpm@animal.unipv.it,
gracias a mi Universidad, la cual generosamente acoge las discusiones
sobre gpm. La lista es gestionada por SmartList y todos sois
bienvenidos.
FICHEROS
/dev/mouse El dispositivo de ratón por defecto
/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)
VÉASE TAMBIÉN
mev(1) Un ejemplo de cliente para el demonio gpm.
gpm-root(1) Un manejador para controlar los eventos
del ratón.
El fichero de info sobre ‘gpm’, el cual da información más completa y
explica como construir un cliente de gpm.