Joplin junto al orgmode, se está convirtiendo en una aplicación imprescindible para mi. Me permite tener sincronizadas mis notas en todos mis dispositivos, gracias a mi servidor webdav.
Voy a explicaros la instalación de algunos de sus clientes y conocer el funcionamiento de la versión de terminal.
Para instalar la versión de escritorio con AppImage.
sudo chmod +x ./*.AppImage
En debian Buster, me da un problema al ejecurar el AppImage, ya que me dice que el sandbox no está bien configurado. Para poder arrancarlo utilizo:
./Joplin-1.0.218.AppImage --no-sandbox
Para configurar correctamente el sandbox, ejecutaremos:
sudo sysctl kernel.unprivileged_userns_clone=1
Si tienes snap en tu sistema, es tan sencillo como:
sudo snap install joplin-james-carroll
Por si solo, el plugin no funciona. Necesita tener abierta la versión desktop de joplin, ya que esta utiliza el puerto 41184 para enviar el contenido del navegador.
Para habilitar que WebClipper y envíe el contenido de una web a joplin desktop, tenemos que ir Herramientas/Opciones/Web Clipper y habilitar el servicio.
Después, como no, tenemos que instalar la extensión para Firefox o Google Chrome.
Si hay algún problema, siempre puedes comprobar si el servidor de joplin está corriendo por el puerto por defecto con:
curl http://127.0.0.1:41184/ping
El resultado si todo es correcto sería:
JoplinClipperServer
Joplin ya permite el control de versiones de una nota. Esto quiere decir que podemos volver atrás en el tiempo, a una edición anterior. Esta opción actualmente solo está disponible en la versión desktop pulsando sobre la "i" de información de la nota o tarea.
También podemos crear sublibretas. Esta opción también a día de hoy, es exclusiva en la versión desktop. EL desarrollador ya ha comunicado que en breve estará en la versión mobile.
Vamos a instalar la versión para utilizar Joplin desde la terminal.
sudo apt install libsecret-1-dev
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
sudo apt install -y nodejs
Podemos instalar la versión de terminal en nuestro pc con arquitectura amd64 o en nuestra Raspberry Pi con arquitectura ARM.
NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin
Creamos un enlace, así en la terminal, con solo escribir joplin, nos abrirá joplin-cli.
sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
Resumido en un solo comando, para que copies y pegues en la terminal:
NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin
sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
Ahora escribiendo joplin en tu terminal, se debería abrir.
Para actualizar la versión del joplin-cli:
NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin
Ahora cuando corras joplin-cli, ya estará actualizado
joplin version
Los archivos de configuración, pueden estar en la carpeta
~/.config/joplin
Carpeta donde están las imágenes
~/.config/joplin/resources
La app de terminal es muy intuitiva. Aparecerán tres grandes columnas, con las libretas, notas y contenido de estas. Utilizaremos la tecla TAB para saltar de una columna a otra.
Para introducir un comando, tendremos que escribir : seguido del comando.
También permite el autocompletado mediante TAB. De manera que si escribimos :sy y pulsamos TAB, auto escribirá :sync.
Para salir de la aplicación, lo haremos escribiendo :exit
o pulsando Ctrl+d.
:mknote "Título de Nota" # Crear nota
:mn "Título de Nota" # Crear nota
:mktodo "Título de tarea" # Crear tarea -> Pulsa la tecla *space*, para marcar la tarea como realizada
:mt "Título de tarea" # Crear tarea
:mkbook "Nombre Libreta" # Crear una libreta
:mb "Nombre Libreta" # Crear una libreta
:ren $n "Nuevo nombre" # Renombrar la nota en la que estás situado, con el nombre "Nuevo nombre"
:mv $n "Tareas" # Mover la nota en la que estás situado, a la libreta "Tareas"
:yn cp $n
:dn mv $n ""
:search # Buscar
:mv TAB # Mover una nota. Si pulsas TAB, nos aparecera todas las notas a seleccionar
:sync # Sincronizar con el servidor
:status # Ver estado. Número de notas, libretas,...
:config editor "nano" # Cambiar editor por defecto
:help # Ayuda
:help all # Ayuda más completa
:help keymap # Atajos
:help shortcuts
tm # Ver metadata de una nota
tc # Entrar y salir al modo consola
Enter # Encima de una nota, editarla
suprimir # Da la opción a borrar una nota, tarea, libreta
Backspace # Da la opción a borrar una nota, tarea, libreta
/ # Buscar
TAB # Saltar entre columnas y autoescritura
Ctrl+d # Salir
Crea el siguiente archivo, si no lo tienes creado
nano ~/.config/joplin/keymap.json
Añade el siguiente contenido
[
{ "keys": [":"], "type": "function", "command": "enter_command_line_mode" },
{ "keys": ["TAB"], "type": "function", "command": "focus_next" },
{ "keys": ["SHIFT_TAB"], "type": "function", "command": "focus_previous" },
{ "keys": ["UP"], "type": "function", "command": "move_up" },
{ "keys": ["DOWN"], "type": "function", "command": "move_down" },
{ "keys": ["PAGE_UP"], "type": "function", "command": "page_up" },
{ "keys": ["PAGE_DOWN"], "type": "function", "command": "page_down" },
{ "keys": ["ENTER"], "type": "function", "command": "activate" },
{ "keys": ["DELETE", "BACKSPACE"], "type": "function", "command": "delete" },
{ "keys": [" "], "command": "todo toggle $n" },
{ "keys": ["tc"], "type": "function", "command": "toggle_console" },
{ "keys": ["tm"], "type": "function", "command": "toggle_metadata" },
{ "keys": ["/"], "type": "prompt", "command": "search """, "cursorPosition": -2 },
{ "keys": ["mn"], "type": "prompt", "command": "mknote """, "cursorPosition": -2 },
{ "keys": ["mt"], "type": "prompt", "command": "mktodo """, "cursorPosition": -2 },
{ "keys": ["mb"], "type": "prompt", "command": "mkbook """, "cursorPosition": -2 },
{ "keys": ["yn"], "type": "prompt", "command": "cp $n """, "cursorPosition": -2 },
{ "keys": ["dn"], "type": "prompt", "command": "mv $n """, "cursorPosition": -2 }
]
Sustituye o personaliza a tu gusto
Nubes disponibles: 2: File system 3: OneDrive 5: Nextcloud 6: WebDAV 7: Dropbox
Yo en mi caso, utilizaré mi servidor webdav, así que utilizaré el número 6.
:config sync.target 6
:config sync.6.path https://mi-url/joplin
:config sync.6.username USUARIO
:config sync.6.password CONTRASEÑA
:sync
Poner la contraseña
:e2ee decrypt
Introduzca la contraseña maestra:
Cambiar el editor a emacs por defecto a:
:config editor "emacs -nw"
Como a veces se me olvida el sincronizar cada vez que he modificado una nota, he creado el siguiente alias con 2 comandos:
joplin sync
.Voy a utilizar la letra j para lanzar Joplin de terminal.
alias j='/usr/bin/joplin ; /usr/bin/joplin sync'
Los comandos son los mismos que la versión terminal, solo que el comando se ejecuta y nos devuelve el resultado. Voy a resumir algunos de los comandos:
joplin config editor # Muestra el editor que estamos utilizando
joplin config editor "gedit" # Utilizar gedit como editor
joplin config dateFormat DD-MM-YYYY # Cambiar formato de fecha
joplin mknote "nueva tarea" # Crear la tarea llamada "nueva tarea"
joplin edit "nueva tarea" # Editar la tarea
joplin cat "nueva tarea" # Mostrar en terminal el contenido de la tarea
joplin cat -v "nueva tarea" # Mostrar contenido y metadata de la tarea
joplin mkbook tareas # Crea la libreta tareas
joplin ls / # Listar libretas desde la raíz
joplin tag list # Listar etiquetas
joplin tag list "linux" # Listar notas con la etiqueta linux
joplin set fd297 titulo "nuevo titulo" # Cambiar título de una nota
joplin use tareas # Situate dentro de la libreta tareas
joplin sync # Sincronizar todas las tareas
joplin import linux.md linux # Importa un documento .md llamado linux en joplin con el título linux
joplin version # Versión de joplin
joplin export --note <node-id> --format md <output-dir>
Listar la raíz de tu Joplin
joplin ls /
Listar la raíz de tu Joplin con los id
joplin ls / -l
Listar y mostrar los id de las notas:
joplin ls -l
joplin use "nombre de libreta"
Ahora podemos listar las notas o tareas de esa libreta:
joplin ls
Editar nota con id 073ac
joplin edit 073ac
joplin cat "nombre nota"
joplin cat id
done "nombre tarea"
undone "nombre tarea"
Listamos las notas en la ubicación que estamos
joplin ls -l
Con cat seguido del nombre de la nota/tarea o el id, exportamos su contenido a el archivo llamado nota.md.
joplin cat id > nota.md
Ayuda simple
joplin help
Ayuda completa
joplin help all
Muestra de ayuda con todos los comandos
attach <note> <file>
Adjuntar archivo a la nota.
cat <note>
Mostrar la nota dada.
-v, --verbose Mostrar la información completa acerca de la nota.
config [name] [value]
Obtener o configurar un valor. Si no se provee el [valor], se mostrará el
valor de [nombre]. Si no se provee [nombre] ni [valor], se listará la
configuración actual.
-v, --verbose También muestra variables ocultas o no configuradas.
--export Writes all settings to STDOUT as JSON including
secure variables.
--import Reads in JSON formatted settings from STDIN.
--import-file <file> Reads in settings from <file>. <file> must contain
valid JSON.
Claves/valores posbiles:
sync.target Destino de sincronización.
El destino de la sincronización. Cada
destino de la sincronización puede tener
parámetros adicionales los cuales son
llamados como `sync.NUM.NAME` (todos abajo
documentados).
Tipo: Enumeración.
Posibles valores: 2 (File system), 3
(OneDrive), 5 (Nextcloud), 6 (WebDAV), 7
(Dropbox).
Por defecto: 7
sync.2.path Directorio con el que sincronizarse (ruta
completa).
Attention: If you change this location,
make sure you copy all your content to it
before syncing, otherwise all files will be
removed! See the FAQ for more details:
https://joplinapp.org/faq/
Tipo: string.
sync.5.path Servidor WebDAV de Nextcloud.
Attention: If you change this location,
make sure you copy all your content to it
before syncing, otherwise all files will be
removed! See the FAQ for more details:
https://joplinapp.org/faq/
Tipo: string.
sync.5.username Usuario de Nextcloud.
Tipo: string.
sync.5.password Contraseña de Nextcloud.
Tipo: string.
sync.6.path Servidor WebDAV.
Attention: If you change this location,
make sure you copy all your content to it
before syncing, otherwise all files will be
removed! See the FAQ for more details:
https://joplinapp.org/faq/
Tipo: string.
sync.6.username Usuario de WebDAV.
Tipo: string.
sync.6.password Contraseña de WebDAV.
Tipo: string.
sync.maxConcurrentConnections Conexiones simultáneas máximas.
Tipo: int.
Por defecto: 5
locale Idioma.
Tipo: Enumeración.
Posibles valores: ar (Arabic (87%)), eu
(Basque (37%)), bs_BA (Bosnian (81%)),
bg_BG (Bulgarian (73%)), ca (Catalan
(58%)), hr_HR (Croatian (31%)), cs_CZ
(Czech (90%)), da_DK (Dansk (81%)), de_DE
(Deutsch (97%)), et_EE (Eesti Keel (72%)),
en_GB (English (UK) (100%)), en_US (English
(US) (100%)), es_ES (Español (90%)), eo
(Esperanto (41%)), fr_FR (Français (91%)),
gl_ES (Galician (47%)), it_IT (Italiano
(96%)), nl_BE (Nederlands (37%)), nl_NL
(Nederlands (92%)), nb_NO (Norwegian
(97%)), fa (Persian (36%)), pl_PL (Polski
(84%)), pt_PT (Português (98%)), pt_BR
(Português (Brasil) (98%)), ro (Română
(37%)), sl_SI (Slovenian (47%)), sv
(Svenska (78%)), th_TH (Thai (58%)), vi
(Tiếng Việt (94%)), tr_TR (Türkçe (100%)),
el_GR (Ελληνικά (89%)), ru_RU (Русский
(97%)), sr_RS (српски језик (78%)), zh_CN
(中文 (简体) (97%)), zh_TW (中文 (繁體) (98%)),
ja_JP (日本語 (100%)), ko (한국어 (95%)).
Por defecto: "en_GB"
dateFormat Formato de fecha.
Tipo: Enumeración.
Posibles valores: DD/MM/YYYY (30/01/2017),
DD/MM/YY (30/01/17), MM/DD/YYYY
(01/30/2017), MM/DD/YY (01/30/17),
YYYY-MM-DD (2017-01-30), DD.MM.YYYY
(30.01.2017), YYYY.MM.DD (2017.01.30).
Por defecto: "DD/MM/YYYY"
timeFormat Formato de hora.
Tipo: Enumeración.
Posibles valores: HH:mm (20:30), h:mm A
(8:30 PM).
Por defecto: "HH:mm"
uncompletedTodosOnTop Mostrar tareas incompletas al inicio de las
listas.
Tipo: bool.
Por defecto: true
showCompletedTodos Mostrar tareas completadas.
Tipo: bool.
Por defecto: true
notes.sortOrder.field Ordenar notas por.
Tipo: Enumeración.
Posibles valores: user_updated_time (Fecha
de actualización), user_created_time (Fecha
de creación), title (Título).
Por defecto: "user_updated_time"
notes.sortOrder.reverse Invierte el orden.
Tipo: bool.
Por defecto: true
folders.sortOrder.field Ordenar libretas por.
Tipo: Enumeración.
Posibles valores: title (Título),
last_note_user_updated_time (Fecha de
actualización).
Por defecto: "title"
folders.sortOrder.reverse Invierte el orden.
Tipo: bool.
Por defecto: false
trackLocation Guardar geolocalización en las notas.
Tipo: bool.
Por defecto: true
sync.interval Intervalo de sincronización.
Tipo: Enumeración.
Posibles valores: 0 (Deshabilitado), 300 (5
minutos), 600 (10 minutos), 1800 (30
minutos), 3600 (1 hora), 43200 (12 horas),
86400 (24 horas).
Por defecto: 300
editor Editor de texto.
El comando del editor (puede incluir
argumentos) que se utilizará para abrir una
nota. Si no se provee ninguno se intentará
auto detectar el editor por defecto.
Tipo: string.
net.customCertificates Certificados TLS personalizados.
Lista de rutas de los directorios de dónde
cargar los certificados separados por
comas, o la ruta individual de los
certificados. Por ejemplo: /mi/cert_dir,
/otro/personalizado.pem. Tenga en cuenta
que si realiza cambios en la configuración
de los certificados debe guardar los
cambios antes de pulsar en «Comprobar la
configuración de sincronización».
Tipo: string.
net.ignoreTlsErrors Ignorar errores en certificados TLS.
Tipo: bool.
Por defecto: false
sync.wipeOutFailSafe Fail-safe.
A prueba de fallos: No borre los datos
locales cuando el objetivo de
sincronización esté vacío (a menudo como
resultado de una configuración errónea o de
un error).
Tipo: bool.
Por defecto: true
revisionService.enabled Habilitar historial de notas.
Tipo: bool.
Por defecto: true
revisionService.ttlDays Mantener historial de la nota durante.
Tipo: int.
Por defecto: 90
layout.folderList.factor Notebook list growth factor.
The factor property sets how the item will
grow or shrink to fit the available space
in its container with respect to the other
items. Thus an item with a factor of 2 will
take twice as much space as an item with a
factor of 1.Restart app to see changes.
Tipo: int.
Por defecto: 1
layout.noteList.factor Note list growth factor.
The factor property sets how the item will
grow or shrink to fit the available space
in its container with respect to the other
items. Thus an item with a factor of 2 will
take twice as much space as an item with a
factor of 1.Restart app to see changes.
Tipo: int.
Por defecto: 1
layout.note.factor Note area growth factor.
The factor property sets how the item will
grow or shrink to fit the available space
in its container with respect to the other
items. Thus an item with a factor of 2 will
take twice as much space as an item with a
factor of 1.Restart app to see changes.
Tipo: int.
Por defecto: 2
cp <note> [notebook]
Duplica las notas que coincidan con <note> en la libreta. Si no se
especifica una libreta la nota se duplica en la libreta actual.
done <note>
Marca una tarea como hecha.
e2ee <command> [path]
Gestiona la configuración E2EE. Los comandos disponibles son: `enable`,
`disable`, `decrypt`, `status`, `decrypt-file` y `target-status`.
-p, --password <password> Use this password as master password (For
security reasons, it is not recommended to use
this option).
-v, --verbose More verbose output for the `target-status`
command
-o, --output <directory> Output directory
--retry-failed-items Applies to `decrypt` command - retries
decrypting items that previously could not be
decrypted.
edit <note>
Editar una nota.
export <path>
Exporta datos de Joplin al directorio indicado. Por defecto, se exportará
la base de datos completa incluyendo libretas, notas, etiquetas y
recursos.
--format <format> Formato de destino: jex (Archivo de exportación de
Joplin), raw (Directorio para exportar de Joplin),
json (Directorio para exportar JSON), md
(Markdown), html (Archivo HTML), html (Directorio
HTML)
--note <note> Exporta únicamente la nota indicada.
--notebook <notebook> Exporta únicamente la libreta indicada.
geoloc <note>
Muestra la URL de la geolocalización de la nota.
help [command]
Muestra información de uso.
import <path> [notebook]
Importa los datos en Joplin.
--format <format> Formato de origen: auto, jex, md, raw, enex, enex
-f, --force No requiere confirmación.
ls [note-pattern]
Muestra las notas en la libreta actual. Usa `ls /` para mostrar la lista
de libretas.
-n, --limit <num> Muestra las primeras <num> notas.
-s, --sort <field> Ordena los elementos por campo ( ej. title,
updated_time, created_time).
-r, --reverse Invierte el orden.
-t, --type <type> Muestra únicamente los elementos de los tipos
especificados. Pueden ser `n` para notas, `t` para
tareas, o `nt` para libretas y tareas (ej. `-tt`
mostrará unicamente las tareas, mientras `-ttd`
mostrará notas y tareas).
-f, --format <format> Puede ser «text» o «json»
-l, --long Usar formato largo de lista. El formato es ID,
NOTE_COUNT ( para libretas), DATE,TODO_CHECKED (
para tareas), TITLE
mkbook <new-notebook>
Crea una nueva libreta.
mknote <new-note>
Crea una nueva nota.
mktodo <new-todo>
Crea una nueva lista de tareas.
mv <note> [notebook]
Mueve las notas que coincidan con <note> a la [libreta].
ren <item> <name>
Renombra el elemento dado <item> (nota o libreta) a <name>.
rmbook <notebook>
Elimina la libreta dada.
-f, --force Elimina una libreta sin pedir confirmación.
rmnote <note-pattern>
Elimina las notas que coinciden con <note-pattern>.
-f, --force Elimina las notas sin pedir confirmación.
server <command>
Inicie, pare o compruebe el servidor API. Para especificar el puerto que
debe ejecutarse use api.port como variable en la configuración. Los
comandos son (start|stop|status). This is an experimental feature - use at
your own risks! It is recommended that the server runs off its own
separate profile so that no two CLI instances access that profile at the
same time. Use --profile to specify the profile path.
set <note> <name> [value]
Asigna el valor [value] a la propiedad <name> de la nota indicada <note>.
Propiedades disponibles:
parent_id (text), title (text), body (text), created_time (int),
updated_time (int), is_conflict (int), latitude (numeric), longitude
(numeric), altitude (numeric), author (text), source_url (text), is_todo
(int), todo_due (int), todo_completed (int), source (text),
source_application (text), application_data (text), order (int),
user_created_time (int), user_updated_time (int), encryption_cipher_text
(text), encryption_applied (int), markup_language (int), is_shared (int)
status
Muestra un resumen acerca de las notas y las libretas.
sync
Sincroniza con el almacenamiento remoto.
--target <target> Sincroniza con el destino indicado (por defecto al
valor de configuración sync.target)
tag <tag-command> [tag] [note]
<tag-command> puede ser «add», «remove», «list», o «notetags» para asignar
o eliminar [etiqueta] de [nota], o para listar las notas asociadas con
[etiqueta], o para listar las etiquetas asociadas con [nota]. El comando
`tag list` puede ser usado para listar todas las etiquetas (usa -l para la
opción larga).
-l, --long Usar formato largo de lista. El formato es ID, NOTE_COUNT (
para libretas), DATE,TODO_CHECKED ( para tareas), TITLE
todo <todo-command> <note-pattern>
<todo-command> puede ser «toggle» o «clear». Usa «toggle» para cambiar la
tarea dada entre estado completado y sin completar. (Si el objetivo es una
nota regular se convertirá en una tarea). Usa «clear» para convertir la
tarea a una nota regular.
undone <note>
Marca una tarea como no completada.
use <notebook>
Cambia una [libreta] - todas las demás operaciones se realizan en ésta
libreta.
version
Muestra información de la versión
notas Instalando Node
En la versión anterior de joplin para cli, teniamos suficiente instalando nodejs y npm desde repositorios, ahora es necesario actualizar para solucionar el problema.
sudo apt update
sudo apt install nodejs
Ahora npm
sudo apt install npm
Publicado por Angel el Saturday 13 June del 2020 y actualizado el Tuesday 17 August del 2021
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.