{"id":670,"date":"2015-05-09T22:11:09","date_gmt":"2015-05-09T20:11:09","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=670"},"modified":"2022-08-20T18:25:36","modified_gmt":"2022-08-20T16:25:36","slug":"sincronizacion-de-bookmarks-con-org-mode-org-protocol-org-mode-capture-firefox-linkification-dropbox","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=670","title":{"rendered":"Sincronizacion de bookmarks con org-mode + org-protocol + org-mode capture + Firefox + linkification + Dropbox"},"content":{"rendered":"<p>Un problema con el que he convivido y al cual me he adaptado de manera incomoda durante mucho tiempo ha sido el manejo de bookmarks. Por una parte solia navegar con Firefox a pesar de que w3m es muy potente, en ciertos casos muchas webs no se abren correctamente y se hace tedioso. Ello obliga a que cualquier enlace interesante guardado en firefox, luego tenga que exportarlo de manera manual a mi fichero bookmarks.org. Una tarea bastante incomoda, porque generalmente guardamos los bookmarks rapido sin mucha atencion, acabando con cientos de ellos, ocupando gran parte del tiempo para discernir cuales son realmente interesantes para meterlos en bookmarks.org. Pero no solo eso. El problema es que en distintos ordenadores tenemos distintos firefox, teniendo asi que sincronizar multiples bookmarks guardados en firefox en un mismo fichero org. Cuando ademas reinstalamos el sistema, solemos perder dichos bookmarks, o teniendo varios ficheros .org en distintas computadoras, hace que dupliquemos bookmarks o que no tengamos la lista completa en distintos PCs.<\/p>\n<p>Pensando mucho en cual era la solucion minimanete ideal, y descartando por supuesto sitios como delicious, el cual obliga a autenticarnos, guardar los bookmarks, y ademas no guardando el formato .org en cualquier caso. Necesitamos una solucion mejor. Guardar los links en un wiki tampoco solucionaba mucho la tarea, por la misma necesidad de autenticarnos y ademas guardar los links en otro formato. Y no solo eso, un ultimo problema, que es que nuestro navegador, como Firefox, reconozca de alguna manera el formato .org de emacs. Ya que si lo usamos a menudo y no solo navegamos desde emacs, lo que no queremos es abrir emacs, abrir el fichero bookmarks.org, copiar el link y pegarlo en emacs, o bien abrir emacs una vez ya estabamos navegando y abrir el fichero .org especificandole que por defecto abra el link en Firefox. Es un context switch que realmente no es comodo.<\/p>\n<p>Asi que buscamos algo mas complejo de lo que originalmente podria parecer: queremos manejar orgmode para el sistema de bookmarks, queremos que ademas firefox cuando naveguemos en el, guarde automaticamente los bookmarks al pulsar unn keybinding (mediante org capture que actuara como bridge) en dicho fichero de org y se comunique con emacs (para ello usaremos org-protocol con emacserver arrancado mediante server-start). Queremos ademas que dicho fichero este sincronizado entre computadores, navegadores y entornos como emacs (para ello guardaremos el fichero en dropbox). Y ademas queremos que desde firefox tengamos un acceso directo a nuestro fichero org, y ademas que firefox interprete y parsee el fichero de texto org como enlaces que son y con un simple click podamos acceder desde el en un nuevo tab al link deseado (para ello usaremos linkification).<\/p>\n<p>Comencemos instalando Dropbox para dejar el fichero de bookmarks en un lugar ideal para sincronizarlo:<\/p>\n<p style=\"padding-left: 30px;\">$ <strong>sudo apt-get install dropbox<\/strong><\/p>\n<p>Instalemos los addons necesarios para firefox:<\/p>\n<ul>\n<li>Org-protocol: <a href=\"http:\/\/orgmode.org\/worg\/org-contrib\/org-protocol.html\" target=\"_blank\" rel=\"noopener\">http:\/\/orgmode.org\/worg\/org-contrib\/org-protocol.html<\/a><\/li>\n<li>Firefox Org capture: <a href=\"http:\/\/chadok.info\/firefox-org-capture\/\" target=\"_blank\" rel=\"noopener\">http:\/\/chadok.info\/firefox-org-capture\/<\/a><\/li>\n<li>Firefox Linkification: <a href=\"http:\/\/yellow5.us\/firefox\/linkification\/\" target=\"_blank\" rel=\"noopener\">http:\/\/yellow5.us\/firefox\/linkification\/<\/a><\/li>\n<\/ul>\n<p>El siguiente paso es indicar en firefox donde se encontrara nuestro fichero org:<\/p>\n<ul>\n<li>En firefox: View -&gt; Toolbars -&gt; Bookmarks toolbar<\/li>\n<li>En firefox: Boton derecho con el raton en nuevo \u00abBookmarks toolbar\u00bb -&gt; \u00abNew Bookmark\u00bb -&gt; En \u00abName\u00bb poner: \u00abOrg bookmarks\u00bb y en \u00abLocation\u00bb poner: \u00ab<a class=\"linkification-ext\" style=\"color: #006620;\" title=\"Linkification: file:\/\/\/home\/usuario\/Dropbox\/org\/bookmarks.org\" href=\"file:\/\/\/home\/usuario\/Dropbox\/org\/bookmarks.org\">file:\/\/\/home\/usuario\/Dropbox\/org\/bookmarks.org<\/a>\u00ab. Asegurarse de desactivar la casilla \u00abLoad this bookmark in the sidebar\u00bb ya que linkification no interpreta el sidebar por desgracia.<\/li>\n<\/ul>\n<p>Indicamos nuestro keybinding para guardar bookmarks en firefox y que aplicacion usaremos para contactar con emacs:<\/p>\n<ul>\n<li>En firefox: \u00abTools\u00bb -&gt; \u00abAddons\u00bb -&gt; \u00abOrg mode capture\u00bb -&gt; \u00abPreferences\u00bb -&gt; indicar como \u00abemacsclient\u00bb el valor de \u00ab\/usr\/bin\/emacsclient\u00bb y como \u00abhotkey\u00bb el valor de \u00abalt-r\u00bb<\/li>\n<\/ul>\n<p>Ahora debemos indicarle a emacs la localizacion de nuestro fichero org y como debe comportarse cuando reciba un link mediante org-protocol. Anadiremos la siguiente configuracion en nuestro <strong>.emacs<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\"><em>(server-start)<\/em><br \/>\n<em>(require &#8216;org-protocol)<\/em><\/p>\n<p style=\"padding-left: 30px;\"><em>(setq org-capture-templates<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0 (quote ((\u00abr\u00bb \u00abReference\u00bb entry (file \u00ab\/home\/overdrive\/Dropbox\/org\/bookmarks.org\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00ab* %?\\n\\n%u\\n\u00bb )<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (\u00abf\u00bb \u00abFirefox\u00bb entry (file \u00ab\/home\/overdrive\/Dropbox\/org\/bookmarks.org\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00ab* %c%?\\n\u00bb )<\/em><br \/>\n<em>)))<\/em><\/p>\n<p>Por supuesto podemos anadir configuraciones mas avanzadas como esta otra:<\/p>\n<p style=\"padding-left: 30px;\"><em>(setq org-protocol-default-template-key \u00abl\u00bb)<\/em><br \/>\n<em>(setq org-capture-templates<\/em><br \/>\n<em>\u00a0&#8216;((\u00abt\u00bb \u00abTodo\u00bb entry (file+headline \u00ab\/home\/overdrive\/ALL\/notes\/notes.org\u00bb \u00abTasks\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00ab* TODO %?\\n\u00a0 %i\\n\u00a0 %a\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0 (\u00abl\u00bb \u00abLink\u00bb entry (file+olp \u00ab\/home\/overdrive\/ALL\/notes\/notes.org\u00bb \u00abWeb Links\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00ab* %a\\n %?\\n %i\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0 (\u00abj\u00bb \u00abJournal\u00bb entry (file+datetree \u00ab\/home\/overdrive\/ALL\/notes\/journal.org\u00bb)<\/em><br \/>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00ab* %?\\nEntered on %U\\n\u00a0 %i\\n\u00a0 %a\u00bb)))<\/em><\/p>\n<p>Para un listado de como usar los templates se puede visualizar aqui: <a href=\"https:\/\/www.gnu.org\/software\/emacs\/manual\/html_node\/org\/Template-expansion.html#Template-expansion\" target=\"_blank\" rel=\"noopener\">https:\/\/www.gnu.org\/software\/emacs\/manual\/html_node\/org\/Template-expansion.html#Template-expansion<\/a> e informacion algo mas general sobre la captura de templates aqui: <a href=\"https:\/\/www.gnu.org\/software\/emacs\/manual\/html_node\/org\/Capture-templates.html#Capture-templates\" target=\"_blank\" rel=\"noopener\">https:\/\/www.gnu.org\/software\/emacs\/manual\/html_node\/org\/Capture-templates.html#Capture-templates<\/a>.<\/p>\n<p>Podeis hacer la prueba. Lanzais emacs, <strong>M-x server-start<\/strong>. Abris firefox, os vais a alguna web, pulsais <strong>Alt+r<\/strong>, vereis que emacs se abre preguntando como quereis guardar el link, pulsais <strong>\u00abf\u00bb<\/strong> para indicar firefox, pulsais <strong>C-c C-c<\/strong> y seguis navegando. El fichero de bookmarks.org se ira actualizando. Cuando vayais a otro ordenador, con la misma configuracion, vereis los links actualizados en el fichero org.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_002.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-673\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_002.png\" alt=\"Selection_002\" width=\"690\" height=\"319\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_002.png 690w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_002-300x139.png 300w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Emacs se abrira en el momento de pulsar Alt+R para guardar el enlace<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_003.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-674\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_003.png\" alt=\"Selection_003\" width=\"687\" height=\"316\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_003.png 687w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_003-300x138.png 300w\" sizes=\"(max-width: 687px) 100vw, 687px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Al pulsar \u00abf\u00bb, nos insertara el link, aqui podemos modificar el formato para finalmente pulsar C-c C-c y guardarlo<\/p>\n<p>Ademas, podeis pulsar en <em>\u00abOrg bookmarks\u00bb<\/em> del bookmarks toolbar de firefox y vereis como se abre a modo web el fichero org con los enlaces resaltados y clickables, los cuales al pulsar se abriran en un nuevo tab.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_001.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-672\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_001.png\" alt=\"Selection_001\" width=\"692\" height=\"482\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_001.png 692w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2015\/05\/Selection_001-300x209.png 300w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Enlaces del fichero org visibles y clickables desde firefox<\/p>\n<p>Una forma distribuida de mantener actualizados vuestros bookmarks, sin necesidad de backups o de tener distintos ficheros en distintos ordenadores, sin necesidad de pensar con que navegais o con que leeis, guardais o abris los enlaces.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un problema con el que he convivido y al cual me he adaptado de manera incomoda durante mucho tiempo ha sido el manejo de bookmarks. Por una parte solia navegar con Firefox a pesar de que w3m es muy potente, en ciertos casos muchas webs no se abren correctamente y se hace tedioso. Ello obliga [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[297],"tags":[351,358,8,349,158,357,157,356,359,355,149,354,145,353,352,146,350],"class_list":["post-670","post","type-post","status-publish","format-standard","hentry","category-advanced","tag-bookmarks","tag-dropbox","tag-emacs","tag-emacs-server","tag-enlaces","tag-firefox","tag-hiperenlaces","tag-hyperlinks","tag-linkification","tag-links","tag-org","tag-org-capture","tag-org-mode","tag-org-mode-capture","tag-org-protocol","tag-orgmode","tag-start-server"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/670"}],"collection":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=670"}],"version-history":[{"count":4,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/670\/revisions"}],"predecessor-version":[{"id":737,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/670\/revisions\/737"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}