Que soy un frikachu del terminal en modo texto es algo que saben bien quienes me conocen, pero quizá con esto consideren que me estoy pasando un poco:
Pues no te creas, para presentaciones en las que tengas que mostrar trozos de código y cosas así es bastante útil. Y además hay dos ventajas añadidas muy interesantes: por un lado, la presentación se escribe en un fichero de texto y por tanto es muy fácil de editar y de leer, por lo que incluso puedes usarlo como guión; por otro, evitas la tentación de usar todas las animaciones y efectos de PowerPoint, Keynote o similares.
Al igual que con el tinglado de las RasPiCams, he empezado con esto de forma simple y poco a poco lo voy refinando.
Instalarlo en Vim es muy sencillo si usas un gestor de paquetes —que deberías—. Por ejemplo, si usas Vundle como uso yo basta con que añadas una línea a tu .vimrc
:
Plugin 'ethernet-zero/vimpoint'
Y luego ejecutes vim +PluginInstall +qa
para instalarlo.
Ya sé lo que estás pensando: ethernet-zero
es mi GitHub. Lo que te instalarías es una versión modificada por mí para que Vimpoint funcione mejor con acentos y todo eso. También mi versión exporta las presentaciones a HTML con un código más correcto y utiliza la ventana del terminal al completo, entre otros detalles.
Te recomiendo que hagas algunos preparativos cuando te instales el plugin: lo primero que deberías hacer es crear un perfil en tu emulador de terminal —o clonar el que usas por defecto y modificar la copia— para establecer un tamaño de letra más grande. Hazlo lo suficientemente grande como para que tu público pueda leer tus diapositivas sin problemas, pero no tanto como para que apenas tengas espacio para el texto. Te recomiendo que ajustes el tamaño de la ventana del terminal de forma que siempre vayas a usar ese tamaño, para que así puedas preparar la presentación mucho más rápido el día que tengas que impartirla.
Seguidamente, entra en el directorio del plugin y cópiate la presentación de ejemplo que viene. Esa presentación sirve a modo de documentación y tutorial todo en uno, así que te será realmente útil. Copia el fichero Vimpoint_Documentation.vpt a algún sitio que tengas a mano y luego abre ese fichero con Vim desde el terminal que has configurado y pulsa Tab una vez abierto. Vimpoint generará las diapositivas en un directorio llamado Vimpoint_Documentation.vpp en el mismo sitio donde tengas el fichero y comenzará la presentación. Pulsando Espacio o Enter irás pasando de diapositiva. Te recomiendo que te leas bien la documentación. Además, esa presentación te servirá para ver si tienes que ajustar o no el tamaño de la ventana del terminal o del tipo de letra.
El control remoto
Dado que la presentación se controla enteramente con el teclado, cualquier dispositivo que te permita configurarlo para simular pulsaciones de teclas te valdrá. Yo opté por este, con el que cubro todas las opciones que ofrece Vimpoint:
El propio mando ya envía pulsaciones de teclado, pero están pensadas sobre todo para usarlo con Powerpoint. En lugar de reconfigurar Vimpoint para usar las teclas enviadas por el mando, decidí hacer lo contrario: remapear las teclas del mando para asignarlas a teclas de Vimpoint. Configurarlo en mi Mac no fue trivial, pero lo conseguí y funciona realmente bien. Básicamente lo que tuve que hacer es aprovechar que ya uso Karabiner —antes llamado KeyRemap4MacBook— para añadir los mapeos necesarios para el mando. Una cosa muy chula de Karabiner es que te permite remapear las teclas para ciertas aplicaciones solamente, como Terminal.app en mi caso.
Este es el fichero de configuración private.xml
que configuré en Karabiner para usar el control remoto en Vimpoint:
<?xml version="1.0"?>
<root>
<appdef>
<appname>TERMINAL</appname>
<equal>com.apple.Terminal</equal>
</appdef>
<devicevendordef>
<vendorname>ZOWEETEK</vendorname>
<vendorid>0x1997</vendorid>
</devicevendordef>
<deviceproductdef>
<productname>PRESENTER</productname>
<productid>0x2433</productid>
</deviceproductdef>
<item>
<name>Remap presenter remote keys for Vimpoint</name>
<appendix>(Only remapped in Terminal)</appendix>
<only>TERMINAL</only>
<device_only>DeviceVendor::ZOWEETEK, DeviceProduct::PRESENTER</device_only>
<identifier>private.remap_vimpoint</identifier>
<!-- The OK button sends Return, remapped to Space -->
<autogen>__KeyToKey__ KeyCode::RETURN, KeyCode::SPACE</autogen>
<!-- Press Black Screen to go to the default target,
press and hold to send Return -->
<autogen>
__HoldingKeyToKey__
KeyCode::B,
KeyCode::TAB,
KeyCode::RETURN,
</autogen>
<!-- Press Play to iterate around the available targets,
press and hold to send Esc -->
<autogen>
__HoldingKeyToKey__
KeyCode::F5,
KeyCode::TAB, ModifierFlag::SHIFT_L,
KeyCode::ESCAPE,
</autogen>
<!-- The Drawing tool sends Control-P, remapped to Control-T -->
<autogen>__KeyToKey__ KeyCode::P, ModifierFlag::CONTROL_L, KeyCode::T, ModifierFlag::CONTROL_L</autogen>
<!-- The White Screen button sends W, remapped to = (equals sign) -->
<autogen>__KeyToKey__ KeyCode::W, KeyCode::EQUAL</autogen>
<!-- The Stop button sends Esc, remapped to - (minus sign) -->
<autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::MINUS</autogen>
<!-- Press Eraser for an indefinite intermission,
press and hold for a 5-minute intermission -->
<autogen>
__HoldingKeyToKey__
KeyCode::E, ModifierFlag::CONTROL_L,
KeyCode::P, ModifierFlag::CONTROL_L,
Option::NOREPEAT,
KeyCode::VK_NONE,
KeyCode::KEY_5,
KeyCode::P, ModifierFlag::CONTROL_L,
Option::NOREPEAT,
</autogen>
</item>
</root>