Mostrando entradas con la etiqueta teclado. Mostrar todas las entradas
Mostrando entradas con la etiqueta teclado. Mostrar todas las entradas

martes, 20 de diciembre de 2022

¿Cómo instalo un emulador de ZX Spectrum en Ubuntu?

Incluso reunido con Sindicalistas en su mítica residencia de Puerta de Hierro, Juan Perón centralizaba los vaivenes de política argentina. En uno de dichos encuentros explicó cómo emular un ZX Spectrum en Ubuntu.

(...)

De poco le vale el Gobierno a estos señores que todo lo que han hecho, lo han realizado en contra del Pueblo.

La acción de los hombres patriotas y el trabajo mancomunado es hoy lo único que salvará a la Patria. Porque yo no llamo Patria a sus campos, o a sus casas, sino a los hombres que trabajan en pos de estas realizaciones. Es para ello que nos hemos encuadrado, para realizar aquello que por otra parte, no ha sido sino el objetivo de los caballeros que lucharon por la Independencia, y de sus hijos que trabajaron por consolidarla.

Nosotros sabemos perfectamente bien cuales son los anhelos de los Trabajadores, y será usted un gran representante y delegado en el país, que les hará llegar mis saludos, esta carta, y esta cinta magnetofónica. Indudablemente que mi regreso está hoy mas cerca que nunca pues si este señor sigue en esta tesitura, no habrá más que volcar a la calle a las Masas con una consigna clara, y en un pronto santiamén todo tendrá el cause que nosotros esperamos. En ello cobra gran relevancia el rol de nuestros dirigentes.

Yo sólo ansío volver sin sangre, que es para lo que hemos invertido tiempo. Lo demás no lo haremos nosotros, sino que lo ha hecho ya nuestro enemigo. Que por otro lado ya son, cada día, menos. Pocos tienen pelo en las filas de Aramburu. Cuando hace mucho calor, el agüita se hace nube sola, ¿sabe?
 

En nuestro Movimiento, lo importante es llegar a las Masas. De nada serviría un software que sólo pueda ejecutarse en las más onerosas máquinas, mientras que el hardware más humilde permanece en la oprobiosa necesidad del más mínimo byte.

Es por ello que ya desde el Primer Peronismo nos dimos a suplir las necesidades de cómputo de un Pueblo que todo lo daba.

Naturalmente que esto implicaba grandes sacrificios que sólo podían venir de una certera forma de programar. Una en la que lo máximo se hiciera con lo mínimo, y en lo posible con nada. Esta es la verdadera forma de hacerlo: una donde eficiencia da todo de los últimos bits de memoria, resguardando en lo ínfimo material una espiritual computación para todos.

La Spectrum ZX82 de Sinclair Research consistía en la segunda versión de una microcomputadora de 8 bits concebida para masiva producción, basada en un procesador Zilog Z80 de 3,5 Megaciclos y con una memoria que que revistaba - de acuerdo al modelo o implementación - desde unos pijoteros 16 kilobytes hasta los 128 kilobytes de memoria RAM.

El objetivo era contar con un instrumento de cómputo al alcance del obrero de overol, que pudiese usar en su hogar para compilar una revolución en BASIC.

El sistema de operación iba contenido en 16 kilobytes de memoria ROM en placa, surtiendo el microcódigo del intérprete de Sinclair Spectrum BASIC 48 que permitía ingeniar microprogramas a través de un mediocre teclado gomoso. La salida de audiovisual comprendía un sintonizador de radiofrecuencia controlado por el microprocesador en sí, y unida a un aparato de televisión color presentaba un terminal de texto a 24x32 o gráficas de hasta 7 colores entre 15 posibles con una resolución tope de 256x192 pixels.

En fin, el conjunto permitía hacer cómputo, por media chirola.

Naturalmente esta maravilla del minimalismo se vio también clonada y copiada - tanto con licencias como por ingeniería inversa - en actos que podrían describirse como "robarle la billetera" a Sir Sinclair. 

Con justicia podremos continuar haciéndolo a través de Fuse, el Emulador Libre de Spectrum para Unix (y similares como el GNU con Linux). Podremos instalarlo fácilmente en Ubuntum abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente Comando de Organización:

sudo apt install fuse-emulator-gtk spectrum-roms fuse-emulator-sdl fuse-emulator-utils

Tras introducir nuestra contraseña de Conductor del Ubuntu se instalará el emulador. Podremos ejecutarlo desde Aplicaciones / Juegos / Fuse (GTK+).

Al iniciar, el Fuse nos presentará una ventana con no pocas opciones que implican el modelo de Spectrum (basada en cantidad de memoria). También el nivel de velocidad emulada y los menúes de configuración. Pero por sobre todo, la pantalla del intérprete.

Naturalmente, siempre he afirmado que emular no es mas que meterle la mula al microprocesador. En esta vertiente, podremos simular el Zilog Z80 con diferentes volcados de memoria de máquina. Desde el menú Options / Select ROMs / Machine ROMs se nos permitirá simular desde las Sinclair Spectrum  16K, 38K, 128K, pasando por las versiones producidas bajo licencia por Times, y las versiones ampliadas de Spectrum hasta su modelo último SE. También podremos configurarle aditamentos como la interfaz de Joysticks Kempston, popular adminículo opcional para meterle dos palancas, o un controlador de puerto serial tipo Centronics.

Con sacrificio, la microcomputadora podía adosar un lento lector de cintas cassette, método favorito para resguardo de masa. Este método se encuentra sencillamente emulado para incorporarle software pre-hecho: podremos descargar programas desde sitios recopilatorios como www.worldofspectrum.org. Allí encontraremos varios formatos de almacenamiento, tanto de diskettes como de cintas cassette. 

Sin duda la manera más fácil es con los volcados cinta cassette, los cuales cuentan con un formato .tzx. En este caso, presionamos la tecla F3 para cargar el fichero tzx en el emulador y ejecutarlo sin más miramientos. También podremos hacer el mismo temperamento simplemente arrastrando un fichero .tzx a la ventana gráfica del emulador.

Mediante la emulación de los clásicos joystick Kempston, útiles para algunos juegos de plataforma típicos de esta máquina.

Naturalmente, también podremos programar en el BASIC 48 de 8K, haciendo uso del inefable teclado de múltiples usos, recurriendo a las teclas Mayúsculas para definir el cambio entre mayúsculas y minúsculas, Control para definir el caracter alternativo (indicado en rojo) y Alt para definir un caracter gráfico en las teclas que cuentan con ellas.

Vean señores, las teclas del teclado tradicional del ZX Spectrum permitían ahorrar tiempo en mecanografiado ya que comprendían no sólo caracteres (letras, dígitos, y acepciones gráficas) sino funciones (palabras clave, nombres de funciones de programación, colores, etc). Ciertas teclas contaban incluso hasta cinco usos.

 

La entrada con el teclado aparece en la parte inferior de la pantalla, a la izquierda del cursor, el cual podremos desplazar con las flecha izquierda y derecha del cursor. Debemos considerar, sin embargo, que su inserción no era tan "directa" como podríamos suponer, sino que debíamos recurrir a combinaciones de teclas para definir uno de los modos de inserción

Las teclas combinables eran:

Tecla CAPS SHIFT: (Mayúsculas): Alterna entre insertar caracteres en mayúsculas o en minúsculas.
Tecla SYMBOL SHIFT: (Control): Conmuta al símbolo alterno marcado en rojo en la tecla.

Como vemos, estas teclas permitían operar según el "modos de inserción" de la consola del Spectrum. indicados por la letra indicada en el proverbial cursor parpadeante de video inverso. Este podía ser:

Modo K: ("palabra claves"). El modo por defecto, que se encarga de insertar una función de programación, según el contexto (al comienzo de una línea, o a continuación de la función THEN, o luego de un : (excepto en una cadena). Si no presiona Mayúsculas, lo siguiente se interpretará como una palabra clave (escrita) o un dígito.

Modo L: ("letras") este modo inserta los caracteres en minúscula de forma convencional. Podrás utilizar la tecla Mayúsculas para conmutar a mayúsculas o bien presionar la tecla Caps Lock para activar el Modo C y escribir en mayúsculas.

Modo E. ("Función Extendida"): Por medio de la tecla Tab o Ctrl+Mayúsculas podrán insertar aquellas funciones de programación indicadas por debajo de la tecla. Las teclas con números tienen funciones extendida de color.

Modo G ("gráficos): Por medio de Mayúsculas+9 activa el carácter gráfico indicado en la mayoría de los números y teclas, permitiendo hacer gráficas simiescas, con autorepetición al presionar una tecla durante mas de 2 segundos. Se desactiva presionando 9.

Al presionar la tecla Intro ejecutaremos la línea de BASIC, y si la misma cuenta con un número de listado, la almacenará en memoria a no ser que cuente con un error de sintaxis de BASIC, en cuyo caso nos indicará un error en forma de insolente "?".

En la medida que escribamos algún programa de BASIC, el listado se presentará en la parte superior, el cual podremos desplazar con Mayúsculas+6 y Mayúsculas+7. Si presionamos Mayúsculas+1 pasaremos al modo edición, y la línea seleccionada pasará a la línea inferior de edición, donde podremos retocarla.

También podremos solicitar un listado del microprograma con la palabra clave K, o y correrlo con la palabra clave R

En ciertos casos podremos interrumpir la ejecución o bucle de programación con Mayúsculas+Barra Espaciadora.

Podremos encontrar un manual de ZX Spectrum aquí.

jueves, 19 de septiembre de 2019

¿Cómo configuro el teclado IBM Model 122 "Acorazado" en Ubuntu?

¡Trabajadores!

Es sabido que un trabajador ha de contar con las mejores herramientas para hacer su trabajo. Pero muchas veces las mejores herramientas son las que el mismo trabajador crea o amolda a sus necesidades.
Es sabido que dentro del mundo de las terminales Unix, inicialmente se dio en utilizar los teclados provistos en las máquinas teletipo Tipo 33. Estos incómodos teclados fueron superados por otros mecánciamente más aptos y funcionalmente mejor pensados. Indudablemente los teclados tipo Space Cadet de las folklóricas computadoras Symbolics, o los influenciales LK201 para las postrimeras terminales DEC son espejos en los que habremos de mirarnos en los años que vendrán. Sin embargo, nadie duda que el más conocido de los teclados hayan sido los modelos de IBM.
 La computadora PC original contaba con el teclado "Modelo F" de 84 teclas. De este derivaría el más influyente modelo, el M (extendido y mejorado), de 101/102 teclas, del cual se desprenden los utilizados actualmente.
Aún así no fueron los definitivos, ya que en el Justicialismo de todo existe como en botica. Tal es así, que la locura experimental no tardó en alcanzar su más estrafalario paroxismo con "el acorazado". Se trataba del teclado IBM Modelo F de 122 teclas para la terminal IBM 3270. Este tipo de terminales industriales y de data-entry requerían el uso de una gran cantidad de teclas aún no estandarizadas, y para ellos se desarrolló este fenomenal teclado capaz de requerir un "Mano" del Eternauta para su correcta operación.

Ahora bien, estos teclados son parcialmente compatibles con las IBM PC, pero difíciles de adaptar al uso de los sistemas operativos actuales. Es por ello que la empresa Unicomp ha recreado el mismo en un fiel clon con teclas de resorte basculante, su teclado número de catálogo UB40T56 provisto de interfaz USB (y en esquema negro peronista).


El uso de uno de estos teclados tan provistos puede presentar ventajas a para quien requiera enorme combinaciones de teclas y un astronómico empleo de edición de texto y programación.

Lamentablemente, el uso de este tipo de teclados no está netamente soportado en GNU. Para hacer un uso efectivo, habremos de emplear ciertos recaudos. En particular debemos tener en cuenta dque nuestro sistema debe recibir las instrucciones específicas para saber qué hacer con las las teclas no estandarizadas del Modelo F 122 de Ubicom.

Vean señores, en un teclado estándar, cada tecla del teclado envia electrónicamente un código de tecla único al sistema, el cual, y nuestra computadora debería reaccionar acordemente. Sin embargo esto no es lo procedente en el teclado Unicomp mencionado.

Afortunadamente, mi rol como Conductor del Movimiento Nacional Justicialismo me impone acercar de forma paternalista las soluciones anheladas por las Masas del Pueblo. Por lo tanto volcaré esta sapiencia para que cada argentino lleve en su mochila el bastón de Mariscal.

La primera tarea para usar el Unicomp de 122 teclas con Ubuntu será activar el modo de código de tecla único en el teclado en sí. Para lograrlo debemos abrir el teclado y remover un jumper específico de la plaqueta del mismo. Esto sencillo de hacer: damos vuelta el acorazado, y sacamos los tornillos de la carcasa, removiendo la mitad superior de la misma. La plaqueta quedará expuesta, lo que aprovechamos para buscar debajo de un pequeño microcontrolador integrado, y cerca del LED de Scroll Lock, al Jumper JP3.

Lo removemos tirando hacia arriba y quitando el jumper., y luego volvemos a cerrar el teclado y reponer los tornillos.

Acto seguido será recomendable activar en nuestro GNU con Linux el parámetro de kernel“atkbd.softraw=0”, lo cual podremos lograr a partir de Ubuntu 10.04 abriendo una Terminal con Ctrl+Alt+T e ingresando el siguiente Comando de Organización:

sudo nano /etc/default/grub

Se abrirá el archivo de configuración del arrancador Grub, con nuestros parámetros de configuración. Nos aseguramos de buscar la siguiente variante:

GRUB_CMDLINE_LINUX_DEFAULT=""

.,..y dentro del string entrecomillado, al final del mismo, le agregamos lo siguiente, de modo que quede:

GRUB_CMDLINE_LINUX_DEFAULT="atkbd.softraw=0"

Conforme finalicemos esta edición, guardamos los cambios con Ctrl+o, salimos del editor GNU Nano con Ctrl+x. No debemnos olvidar actualizar el arrancador Grub mediante el comando:

sudo grub-update

Si todo está bien y no devuelve errores, reiniciamos nuestro sistema con:

sudo reboot

(Nota: Si nos devolviese algún error, volvemos a editar el archivo para dejarlo como estaba y volvemos actualizar con sudo grub-update).

Si no hacemos esto, el comando showkey -s solamente nos mostrará los códigos de teclas que ya están preconfiguradas en el kernel, y no las que realmente son enviadas por el teclado. Es posible mostrar los códigos de teclas desconocidos activando el módulo i8042 en modo debug, pero el comando atkbd.softraw hace lo mismo de manera mas efectiva.

La parte molesta del procedimiento es tomar nota de cuáles son los códigos de tecla específicos que envía el teclado Unicomp 122. Ello se sondea con showkey -s y presionando las teclas para ver cada una.

Las teclas convencionales son más o menos parecidas a las estandarizadas por el teclado Modelo M de IBM, el de toda la vida. Sin embargo, existen discrepacias. Os listaré preliminarmente los resultados de mi sondeo específico. ¡Estén atentos que vuestros resultados pueden variar! Este teclado no es estándar y por ello requiere comprobar esto para evitar resultados indeseables con el mismo.

Grupo Tecla Presión Soltar Código de tecla
Teclas de Función

F13 5b db

F14 5c dc 95

F15 5d dd 183

F16 63 e3

F17 64 e4

F18 65 e5

F19 66 e6

F20 67 e7

F21 68 e8

F22 69 e9

F23 6a ea

F24 6b eb
(siguiente fila) F1 3b bb 59

F2 3c bc 60

F3 3d bd 61

F4 3e be 62

F5 3f bf 63

F6 40 c0 64

F7 41 c1 65

F8 42 c2 66

F9 43 c3 67

F10 44 c4 68

F11 57 d7 87

F12 58 d8 88
Teclado numérico izquierdo (La tecla superior izq es “Esc”)

Esc 7e fe 121

Cent 76 f6 85

ImpPant 72 f2

Pausa e1 1d 45 e1 9d c5 119

Imprimir 74 f4

Ayuda 6d ed

Record e0 2a e0 37 e0 b7 e0 aa 99

Play 6f ef

GUI (Windows) 75 f5

Menú 6c ec
Teclado de edición (entre el teclado QWERTY y el teclado numérico)

RetrocedeTab 5a da

Insertar e0 49 e0 c9 104

RePág e0 51 e0 d1 109
(siguiente fila) Blue Return e0 4f e0 cf 107

Supr e0 52 e0 d2 110

AvPág e0 53 e0 d3 111
(siguiente fila) Flecha Arriba e0 48 e0 c8 103
(siguiente fila) Flecha Izq e0 4b e0 cb 105

Inicio e0 47 e0 c7 102

Flecha Der e0 4d e0 cd 106
(siguiente fila) Flecha Abajo e0 50 e0 d0 108
Teclado numérico
(fila superior) Fin 01 81 1

Bloq Desp 46 c6 70
(BloqDesp+Mayús) Bloq Num 45 c5 69

/ 37 b7 55

* e0 c5 e0 b5 98
(siguiente fila) KP-7 47 c7 71

KP-8 48 c8 72

KP-9 49 c9 73

4e ce 78
(siguiente fila) KP-4 41 cb 75

KP-5 4c cc 76

KP-6 4d cd 77

+ 4a ca 74
(siguiente fila) KP-1 4f cf 79

KP-2 50 d0 80

KP-3 51 d1 81

Enter e0 1c e0 9c 96
(siguiente fila) KP-0 52 d2 82

KP-. 53 d3 83
  • Grupo. Para dividir las cosas, he agrupado las teclas en 5 secciones separadas del teclado: las teclas de función, el teclado de la izquierda, el teclado QWERTY, el teclado de edición, y el teclado numérico. Los detalles del teclado QWERTY estarán al final ya que los otros grupos son más interesantes (las teclas del QWERTY funcionan sin problemas).
  • Tecla. Este es la impresión de la tecla en el teclado. Podría ser diferente en distintas variantes, de modo que en todos los casos he iniciado con el teclado desde la parte superior izquierda, y he ido bajando hacia la derecha y abajo..
  • Presión. Este es el código producido cuando la tecla se aprieta.
  • Soltar. Este el el código producido cuando la tecla se suelta.
  • Código de tecla. Este el el código de tecla configurado producido en la consola Linux. Las celdas rojas son valores que son erróneos, pero además hay muchos que faltan pues no se producen con una presión de tecla. Son equivocados porque el código de letras dan un resultado que no se condice con la tecla en sí - en algunos casos peligrosamente erróneos, como AvPg que produce un Supr. Una de las cosas de que debemos tener en cuenta es que DEBEMOS usar el comando "showkey -k" en la consola para obtener los mismos números que tengo. El servidor X parece agregar un 8 a cada código de tecla.
Podremos encontrar ciertas particularidades. F14 y F15 han recibidos códigos de tecla estándares por defecto, de modo que sus códigos de tecla deben coincidir con teclas definidas en los teclados más populares. Y por supuesto, BloqNum y BloqDesp comparten el mismo código lo cual es extraño. Finalmente la tecla Record envía dos toques de tecla en uno.

Corregir las Teclas Erróneas

En primer lugar debemos mapear las teclas que producen un código de tecla que representa una tecla diferente que la que corresponde. Como la tecla marcada como End, que devuelve el código estandarizado de la tecla Esc. He dejado dos de las teclas erróneas de este grupo ya que serán mejor representadas en la próxima sección.

Las teclas erróneas pueden ser corregidas con los siguientes comandos:
 
setkeycodes 7e         1    # Esc
setkeycodes e049      82    # Insert
setkeycodes e051     105    # PageUp
setkeycodes e052     111    # Delete
setkeycodes e053     109    # PageDown
setkeycodes 01       107    # End
setkeycodes 37        98    # KP-/
setkeycodes e035      55    # KP-*
setkeycodes 4e        74    # KP--
setkeycodes 4a        78    # KP-+

He dejado un par de las teclas erróneas de esta sección, ya que no devuelven valores peligrosamente incorrectos, y corresponden de manera más lógica a la próxima sección (las teclas Record y Blue Return).

Configurar las Teclas Extra

Ahora concentrémonos en las teclas extras. La parte difícil fue inventar nuevos códigos de tecla para estas teclas que no entren en conflicto con códigos de teclas previamente existentes, y que además sean razonables. Esto en la práctica es imposible, ya que el comando xmodmap -pk no aparenta mostrar un rango significativo de códigos de tecla no utilizados, aunque algunos de los códigos utilizados se empleen para butones con la orden "comprar" y cosas por el estilo!

De tal manera, que escogemos un rango con el mayor número de teclas no asignadas o inútiles, y los asignamos:
 
setkeycodes 5b       222    # F13
setkeycodes 5c       223    # F14
setkeycodes 5d       224    # F15
setkeycodes 63       225    # F16
setkeycodes 64       237    # F17
setkeycodes 65       238    # F18
setkeycodes 66       228    # F19
setkeycodes 67       229    # F20
setkeycodes 68       230    # F21
setkeycodes 69       231    # F22
setkeycodes 6a       232    # F23
setkeycodes 6b       233    # F24
setkeycodes 72        99    # Record (luego de intercambiar la tecla)
setkeycodes 74       209    # Print
setkeycodes 6d       138    # Help
setkeycodes 6f       239    # Play
setkeycodes 75       234    # Windows (GUI)
setkeycodes 6c       240    # Menu
setkeycodes 5a       235    # Backtab
setkeycodes e04f     236    # BlueReturn

Una vez que hemos cambiado esto, podemos buscar corregir los mapeados bajo el servidor X, que es la causa por la cual F17 y F18 están fuera de secuencia con los de arriba. Una de las teclas tiene que ser (al menos hasta que alguien logre una solución mejor) ordenada con un recambio de teclas. Para ello intercambiamos de lugar la tecla Record y la cambiamos por la marcada PrintScreen” (esto es fácil de hacer pues en los teclados IBM podemos sacar las teclas y ponerlas en otro lugar). Además como el código de teclas de Record efectivamente son dos códigos de tecla en uno, si intentamos remapearlo esto provoca "problemas extraños difíciles de dilucidar".

Corregir el resultado bajo servidor X11

Una vez que hemos configurado los código de tecla que no hacen cosas raras bajo el servidor X (por ejemplo F17 y F18 no producen un código de teclas bajo X11, sino que disparan otro evento), podemos seguir configurando el teclado bajo X según nuestros gustos.

A continuación un intento de mapear lo más fielmente posible las acciones de las teclas sin irnos a los extremos.
 
xmodmap -e "keycode 230 = F13"
xmodmap -e "keycode 231 = F14"
xmodmap -e "keycode 232 = F15"
xmodmap -e "keycode 233 = F16"
xmodmap -e "keycode 245 = F17"
xmodmap -e "keycode 246 = F18"
xmodmap -e "keycode 236 = F19"
xmodmap -e "keycode 237 = F20"
xmodmap -e "keycode 238 = F21"
xmodmap -e "keycode 239 = F22"
xmodmap -e "keycode 240 = F23"
xmodmap -e "keycode 241 = F24"
xmodmap -e "keycode 217 = Print"
xmodmap -e "keycode 9 = Escape 3270_Attn"
xmodmap -e "keycode  93 = cent bar"
xmodmap -e "keycode 175 = 3270_Record"
xmodmap -e "keycode 175 ="
xmodmap -e "keycode 247 = 3270_Play"
xmodmap -e "keycode 242 = Super_L"
xmodmap -e "keycode 248 = Multi_key"
xmodmap -e "keycode 243 = 3270_BackTab"
xmodmap -e "keycode 118 = Insert 3270_Duplicate"
xmodmap -e "keycode 112 = Prior 3270_Jump"
xmodmap -e "keycode 117 = Next 3270_Rule"

Esto nos da como resultado una configuración de teclado que más o menos ofrece los resultados esperados al presionar las teclas correspondientes. Para lograr algunos de los símbolos azules, presionamos la tecla correspondiente en combinación con Mayúscula.

El teclado numérico podría recibir un poco más de atención en cuanto a su mapeado en X, y hay algunos símbolos azules en el teclado QWERTY principal que podrían ser mapeados con mayor utilidad, pero de momento esto es suficiente para el Justicialismo.

Configurarlo fácilmente en un archivo

Una vez comprendido el censado de los código de tecla de este particular teclado y ajustado nuestros anhelos, podremos hacerlo efectivo para nuestro sistema. Lo más práctico es juntar todo en un script que podamos ejecutar, ya sea aisladamente o cuando arranca el sistema (tal vez no recomendado esto, pues desfasaría otros teclados estándares). Si quisiéramos poner en práctica lo primero y dejar un script que deba ejecutarse para usar este teclado Unicomp, podríamos ingresar:

nano ~/teclado_122.sh

Esto abrirá el editor GNU Nano con un archivo en blanco. y le agregamos entonces el siguiente bloque de texto (que engloba los comandos anteriores):

#!/bin/bash
#
# Configuración para el teclado Unicomp de 122 teclas peronista 
# para Ubuntu 10.04 y superior.
# corrección teclas erróneas:
setkeycodes 7e         1    # Esc
setkeycodes e049      82    # Insert
setkeycodes e051     105    # PageUp
setkeycodes e052     111    # Delete
setkeycodes e053     109    # PageDown
setkeycodes 01       107    # End
setkeycodes 37        98    # KP-/
setkeycodes e035      55    # KP-*
setkeycodes 4e        74    # KP--
setkeycodes 4a        78    # KP-+
#configuración de teclas extra del teclado unicomp 122
setkeycodes 5b       222    # F13
setkeycodes 5c       223    # F14
setkeycodes 5d       224    # F15
setkeycodes 63       225    # F16
setkeycodes 64       237    # F17
setkeycodes 65       238    # F18
setkeycodes 66       228    # F19
setkeycodes 67       229    # F20
setkeycodes 68       230    # F21
setkeycodes 69       231    # F22
setkeycodes 6a       232    # F23
setkeycodes 6b       233    # F24
setkeycodes 72        99    # Record (luego de intercambiar la tecla)
setkeycodes 74       209    # Print
setkeycodes 6d       138    # Help
setkeycodes 6f       239    # Play
setkeycodes 75       234    # Windows (GUI)
setkeycodes 6c       240    # Menu
setkeycodes 5a       235    # Backtab
setkeycodes e04f     236    # BlueReturn
#mapeo de teclas en x11
xmodmap -e "keycode 230 = F13"
xmodmap -e "keycode 231 = F14"
xmodmap -e "keycode 232 = F15"
xmodmap -e "keycode 233 = F16"
xmodmap -e "keycode 245 = F17"
xmodmap -e "keycode 246 = F18"
xmodmap -e "keycode 236 = F19"
xmodmap -e "keycode 237 = F20"
xmodmap -e "keycode 238 = F21"
xmodmap -e "keycode 239 = F22"
xmodmap -e "keycode 240 = F23"
xmodmap -e "keycode 241 = F24"
xmodmap -e "keycode 217 = Print"
xmodmap -e "keycode 9 = Escape 3270_Attn"
xmodmap -e "keycode  93 = cent bar"
xmodmap -e "keycode 175 = 3270_Record"
xmodmap -e "keycode 175 ="
xmodmap -e "keycode 247 = 3270_Play"
xmodmap -e "keycode 242 = Super_L"
xmodmap -e "keycode 248 = Multi_key"
xmodmap -e "keycode 243 = 3270_BackTab"
xmodmap -e "keycode 118 = Insert 3270_Duplicate"
xmodmap -e "keycode 112 = Prior 3270_Jump"
xmodmap -e "keycode 117 = Next 3270_Rule" 

Una vez que tengamos el archivo, guardamos los cambios y salimos del editor con Ctrl+o y Ctrl+x. Finalmente lo hacemos ejecutable con el siguiente comando:

chmod +x ~/teclado_122.sh
cd ~
sudo mv teclado_122.sh /usr/local/bin/

De ahora en más, podremos hacer efectivos los cambios ejecutando el script con este comando:

teclado_122.sh

viernes, 16 de junio de 2017

¿Cómo puedo simular un teclado IBM Model M en Ubuntu?

Vean señores,

A pesar de aquella mentira con forma de espejitos de colores que significan las interfaces táctiles, es sabido que un verdadero escritor o programador ha de aporrear teclas. Quien escriba realmente, puede decirlo: sólo un aparato de acción mecánica puede hacer que lo que escribamos tenga sentido.

No es secreto para nadie que la aplicación asesina por antonomasia de la PC es la escritura, pues indudablemente fueron los softwares de procesamiento de textos los encargados de resolver con vehemencia las inconveniencias que acarreaban las viejas máquinas de escribir desde mediados del Siglo XIX.

Pero sólo hemos de darle un peine a un pelado, para que éste quiera hacer de él una cocarda, y con los procesadores de texto sucedió lo mismo. El tiempo y las mejoras tal vez innecesarias para el común del Pueblo, vinieron a sumarles complejidad, al punto de tornarlos paradójicamente en herramientas contrarios al Arte de escribir. No han sido pocos los que han preferidos softwares de escritura simplificados, y en tal beneficio ya he explicado porqué y cómo simular una máquina de escribir en Ubuntu con sonido y todo.
Ahora bien, en mi PC de escritorio para tales tareas utilizo un teclado IBM Model M de 102 teclas de distribución española, con la descontinuada interfaz AT. Es sencillo por medio de un adaptador AT a PS/2 que luego va conectado a un adaptador PS/2 a USB. Al fin y al cabo, el Justicialismo siempre se ha adaptado a nuevos tiempos. Gracias a estos recaudos de bajo costo, se puede revivir el clásico teclado IBM en cualquier equipo moderno dotado de puertos USB.


¿Porqué emplear este viejo teclado hoy en día? Lo que hacía característico a este periférico de patentado por Harris y Coleman para IBM (documento hoy expirado), era su legendaria dureza de tipeo, así como el sonido especial que hacían sus teclas. Esto se explica ya que sus domos plásticos a dos tonos, cubren un mecanismo con resorte de acero templado, unido a una placa metálica de acción pivoteante, que ofrece una resistencia variable a la presión dactilográfica. Conforme ésta es vencida, otorga una excelente respuesta de disparo electromecánico acompañada por una acción metálica sonora, amortiguada plásticamente. Luego la tecla resulta devuelta a su posición de descanso por el resorte.

Tal vez esta acción pudiera ser considerada hoy demasiado marcada o aguzada, pero quienes hemos utilizado un Model M no olvidaremos jamás su potencia como herramienta validísima para la acción de tipeo, superior a aquellos teclados que hoy en día se dan a llamar "gamer". El Model M es un equipo verdaderamente profesional pensado para escritores y con fama de durar, y vaya si lo ha hecho este ejemplar.



Por otro lado es totalmente desarmable, y tanto sus teclas como la carcasa pueden limpiarse. Tras una lógica tareas de mantenimiento y limpieza con alcohol isopropílico y agua destilada al 15%, sus inscripciones siguen como nuevas, incluso las de las cimas de las teclas (en este ejemplar, hasta en sus lados poseen indicaciones).



Es cierto que en la actualidad, gracias a la gente de Unicomp, pueden encontrarse teclados de moderna factura y provistos de la misma mecánica que el Model M, en versiones "ultra clásicas", o en variantes modernas con 104 teclas (incluso distribuciones en español y latinoamericano), colores oscuros e interfaces PS/2, USB, incluso con teclas "Tux". Su precio es elevado, pero considerando la mayúscula calidad del pèriférico, se amortiza su costo a lo largo de una extendida vida útil. Sólo hemos de pensar como se tendió a reemplazar el costoso mecanismo de resorte por unidades más simples, de menor presión, a fin de hacer más blando el tecleo, y finalmente se usó el sistema chiclet, con base-teclas de goma o silicona, tan extendido como vilipendiado. Puedo decirlo sin temor a equivocarme, que el viejo Model M, es muy superiores a cualquiera de los ejemplares nuevos fabricados en la China de Mao...

Sin embargo, no todos pueden o quieren adquirir un teclado de tales características. Por ejemplo, puede ocurrir que tengamos una laptop, ya provista de un teclado silencioso, gomoso y poco peronista. En nuestro Movimiento tenemos un adagio que reza que donde existe una necesidad, existe un derecho, y donde no existe el hardware, existe el software para emularlo. Por tal motivo no dejaría de ser interesante simular por software (al menos en su sonido) al clásico Model M, de IBM.

Lo mejor suele venir en kilobytes. Si tenemos Ubuntu 16.04LTS o superior, podremos instalar esta simple aplicación desde la terminal. Para ello abrimos una con Ctrl+Alt+T y usamos la terminal.

Lo cierto es que podremos descargar bucklespring a través de los repositorios con:

sudo apt-get update
sudo apt-get install libopenal-dev libalure-dev libxtst-dev
sudo apt-get install bucklespring bucklespring-data

O menos deseable, incluso a través de un paquete snap con:

sudo snap install bucklespring ; 

Pero la realidad es que Bucklespring es un programa sensible, pues en el fondo se trata de un capturador de teclas con sonido ("keylogger"), y los snaps no nos garantizan que en el empaquetado nos metan un módulo malicioso que envíe lo que mecanografiamos - incluyendo material sensible como contraseñas - a un tercero. Por tanto recomiendo encarecidamente compilarlo desde su código fuente oficial.

Para ello en lugar de usar snap, ingresamos los siguientes Comandos de Organización:

sudo apt install git libopenal-dev libalure-dev libxtst-dev;
cd /tmp ;
git clone https://github.com/zevv/bucklespring ;
cd /tmp/bucklespring;
make ;
sudo cp
/tmp/bucklespring/buckle /usr/games/buckle ;
sudo mkdir /usr/share/buckle/ ;
sudo cp -r /tmp/bucklespring/wav/
/usr/share/buckle/ ;
echo "/usr/games/buckle -g 60 -s 100 -p /usr/share/buckle/wav/" > ~/.local/bin/buckle ;
chmod +x
~/.local/bin/buckle ;
echo "#agregado para Bucklespring"> ~/.alsoftrc ;
echo "period_size = 32" >> ~/.alsoftrc ;
echo "periods = 4" >> ~/.alsoftrc ;
echo "hrtf = true" >> ~/.alsoftrc ;
echo "allow-moves = true" >> ~/.alsoftrc

En este caso iniciamos el programa con el comando buckle o creando a tal fin un lanzador.

Por ejemplo, podríamos querer reducir el volumen al 80% del total modificando el lanzador. Para ello podremos editar el lanzador haciendo clic con botón derecho sobre el menú Aplicaciones, y en el menú contextual que se despliega escogemos Editar Menús). En la ventana Menú Principal desplegamos la solapa Aplicaciones / Otros, presionamos el botón Crear lanzador. 

En la ventana propiedades del lanzador, indicamos "Bucklespring" en el campo "Nombre", y en el campo "Comando:" indicamos el siguiente ejecutable:

/usr/games/buckle -g 60 -s 100 -p /usr/share/buckle/wav/

La variable "-g 60" indica un volumen del 60%,  pero si la removemos podremos utilizar el volumen por defecto al 100% para simular en toda su gloria al viejo Model M, pero podremos configurar valores inferiores para que no resulte tan aguzado o molesto a terceros. La variable -s 100 indica el valor de amplitud estéreo (podemos achicarlo si no lo queremos tan amplio). Finalmente presionamos los botones Cerrar.

Para ejecutar el programa, podremos ir a Aplicaciones / Otros / Bucklespring. Para ejecutarlo desde la terminal, ingresamos:

buckle

Dactilografiar con dicha acción, y sobre todo el sonido que sus resortes provocan, es un aliciente a los oídos, y causa la sensación cierta de estar logrando algo. Llevo en mis oídos, la más maravillosa música.

Para enmudecer temporalmente el sonido del teclado, podremos presionar dos veces la tecla ScrollLock (tecla Bloq. Despl, en algunas notebooks se la logra con Fn+F12). También podremos regular el volumen de los eventos de teclado dentro del panel de sonido (Sistema / Preferencias / Hardware / Sonido, y luego escogemos la solapa Aplicaciones) bajo el título de "buckle":

Las variables del programa buckle consisten en las siguientes:

uso; buckle [opciones]

opciones:

  -d DISP     usa el DISPOSITIVO de audio
  -f          usa un sonido genérico para teclas desconocidas
  -g VOLUMEN  volumen de reproducción [0..100]
  -m CODIGO   Usa el COD hexadecimal de la tecla para enmudecer (por 
              defecto usa el cod. 0x46, de la tecla BloqDespl)
  -h          Muestra la ayuda
  -l          lista los dispositivos de audio disponibles
  -p DIR      carga los archivos .wav desde el directorio DIR
  -s AMPLITUD configura la apertura estéreo [0..100]
  -v          verbosidad / debugging

miércoles, 17 de marzo de 2010

¿Cómo programo el botón "P" de mi notebook Acer con Ubuntu?

¡Trabajadores!

Comprenderán que las notebooks Acer, sobre todo algunos modelos de la serie Aspire y de la serie One, cuentan con un botón programable, "P" localizado en la parte superior del teclado. Tal botón (que en algunos modelos de Acer incluso cuenta con un led azul), puede programarse para ejecutar determinadas tareas.

En Ubuntu me han preguntado cómo hacer uso de él, y he aquí que deseo aclarar sobre este particular a esta Masa, que por mas de veinte años ha luchado.

Para modificar las acciones de la tecla "P" (que usualmente no tiene ninguna acción asignada en Ubuntu) simplemente debemos ir a Sistema / Preferencias / Combinaciones de teclas.

Una vez abierta la ventana de configuración, simplemente debemos buscar una acción que queramos que se realice presionando la "P" de la Acer (con confundir con la tecla "p" del teclado, que sirve para escribir la p nomás).

Por ejemplo, a mí me gusta asignar la tecla "P" como atajo para disparar el programa "Calculadora". De modo que si necesito hacer una cuenta rápida, no tengo que buscar la calculadora en Aplicaciones /Accesorios.

Para ello en la ventana Combinaciones de teclas elijo Calculadora (en la sección Escritorio) y hago clic. Ubuntu me pedirá que presione la tecla que deseo asignar para disparar la calculadora: en este momento presiono la "P" de Acer.

Veremos que a la calculadora se le asigna la tecla XF86Launch2, tal es la designación técnica de la tecla "P" de Acer.

También puedo hacer lo mismo con la tecla "Bluetooth", pues mi Acer 5542 carece de bluetooth y trae ese botón al ñudo. Simplemente lo asigno para que dispare el Explorador de Internet Firefox.

Una vez terminado este breve trámite, cierro la ventana "Combinación de Teclas" y compruebo que al presionar la "P" y la tecla "Bluetooth" se disparen las acciones que he escogido.

Lo que hasta ahora no he podido realizar, es activar la iluminación del LED azul de la letra P, el cual se activa en el sistema operativo de la oligarquía si le cargo un software especial de Acer. No obstante, la funcionalidad de la tecla "P" permanece intacta e inconmovible.

Les dejo un gran saludo y los estrecho sobre mi corazón.

Juan Perón