Thursday, September 4, 2025

Tools of Excellence: Cb2bib, Yazi, Sioyek, Entangle, XnViewMP, Emacs,...: WOW!

In the summer of either 1982 or 1983, I enrolled in a summer school class at UCSB offered by the College of Engineering on Computer Architecture.  At about this time two of my regular classes required the use of Wordstar, on a mainframe terminal.  I had been required to write a program in Fortran for a math course; now, in this Computer Architecture class, I wrote some minimal code in PDP-1170 Assembly Language.   Intel's early microprocessors---the engines that  would spark a revolution in Personal Computing---had come into being.   I had enrolled on a Pass/Fail basis, fearing that it would be a technical challenge.  I had enrolled later in an amazing  Invertebrate  Paleontology course, also Pass/Fail.  Both times, I would have earned an honest "A."         Yet another Lesson learned.  

 The theory behind digital computers, as it turns out, is straightforward and fascinating, logical and understandable.  I later came to realize that these systems, invented  by humans, reflected human logic; they are non-complex, a fact I understood more fully after being introduced to Molecular Biology and Genetics, and the extreme complexity of the Central Dogma  By the end of the short summer session, I had a tentative grasp of the nature of digital computers.  The graduate student instructor took me aside and advised that the knowledge I had gained in this brief introduction would be valuable in the future, and I would be able to advise others about what computers can do.  

 This advice could not have been more applicable when I moved to Chuuk Lagoon, and started a project collecting animal names in local dialects of the islands.  At the University of Guam Marine Lab, I was exposed to early Personal Computers, the IBM XT and IBM AT.  My basic knowledge of the workings of computing systems provided useful perspective for solving problems.  I eschewed the commercial/proprietary solutions, the high priced computer programs that would make the entrepreneurs wealthy.  

 I learned what I could and scrounged software of many kinds.  Except the big brands.  There are always other solutions that work better; those behemoths aren't worth the cost to society.  I believed this then, and I believe it even more today.  

 My Toolbox

Previously, I have written a little about Yazi and Sioyek.   They, like Cb2Bib and Entangle, are functionally remarkable tools.   Among Free Software users, they are not the most popular.  I also rely upon the highly functional, low overhead foundation, the i3 tiling window manager.  Emacs is a mainstay; like these other tools, the simplicity and functional design of Emacs makes it run circles around most proprietary software.  Windows is dumbed down; the stress of using such a dysfunctional tool might be likened to trying to build a cabinet using a jackhammer; a poorly made jackhammer at that.   I use LibreOffice from time to time, and some other more mainstream tools.  They are fine; but the workhorses in my toolbox are more special. The packages I am writing about today are truly special, and enabling. 
 
I as initially attracted to Free Software for financial reasons.  The story is too long to recount here.  But as I have come to understand the GNU Project, and the grass-roots nature of the development of these tools, it became clear to me that the Free in Free Software actually refers to freedom, not free beer.   
 

Sioyek

The PDF reader Sioyek caught my attention relatively recently, with its plain exterior, focus on research, and its  hidden gems.  For a couple of days, I returned to sioyek, after setting it aside a while; a closer reading of the documentation has given me a new appreciation of it's wonders.  And today, after some digging, I was able to configure yazi to open files in Sioyek, or Evince, at will.  Gradually, the levers and buttons of sioyek are revealed.
 
The documentation is relatively straightforward.   But I struggled with configuration.  Later for that.  PrintHere are some of the more interesting features:
  • A keystroke sends the text at the cursor to Google Scholar (GS), or another tool I am unfamilar with.  A browser opens, Google Chrome.  Keystrokes are available, either standard or by a plugin, to download the pdf from GS.  
  • Sioyek remembers bookmarks of two or three kinds.  A keystroke causes display of a list of bookmarks in either the current file, or all pdfs sioyek knows about.  
  • One of these "bookmark" functionalites is called "highlighting."  Selected text may be highlighted.  The keystroke for highlighting must be followed by a single key, which represents the type of material.  So someone like me, whose mind travels in so many directions, can keep track of various threads of interest.  If several files are highlighted in this way, retrieval of highlights can optionally display all highlights of a given type in all files (globally).  
  • The Global retrieval feature holds for bookmarks as well.  So if I am reading four PDFs that relate to each other, I can bounce around.  And selections can be copied to the system clipboard.  You know where this is going.
  • Portals are something I don't yet understand.  I position may be set as a target for a portal, so as I'm reading I can refer back to a certain specific piece of text, diagram, table, whatever.  Backspace brings me home.
  •  I was able to print.
  • Sioyek is mainly keyboard driven; but scrolling with a mouse is possible.
  • A "visual mark" (or whatever it's called) underlines current text if that is wanted; and this mark can be manipulated in various ways.  More to learn hear.
  • Zooming is great.
  • In PDFs text can be selected and various functions are possible.  A click on a figure number will take me directly to that figure.  This built-in feature seems almost intelligent, and it reminds me of snarfing references in Cb2Bib, a remarkable feature.  
  • Synctex mode allows the latex source to be opened and followed when reading a pdf.  Wow.

Some thought went into this tool.  

 

Yazi 

Yazi is a console based file manager with superpowers.  I have gotten into the configuration details far enough to make it possible to choose which pdf viewer is desired.  Sometimes, I think sioyek may be too far out, for some things; so I set up to be able to open in either  evince or sioyek.  Shift-O opens a minimal menu; included here is a button to open it in a folder.  I think some more tweaking is needed to identify low-overhead tools like qutebrowser for Google Scholar searches, and a minimal Graphical File Manager with lower overhead.  My laptop lags seriously, but it's a very old laptop.
 
Yazi works swell with kitty.  Previews of jpegs and pngs, and possibly tiffs (with some tweaking) is extremely fast, and a plugin "zoom" feature enables the image to zoom to the full height of the window.  Image and PDF previews are useful.  
 
Bunny is an amazing bookmarking tool.  
 
A tweak in .bashrc (or .zshrc) makes it possible to open yazi by typing 'y'.  As a bonus feature, when one changes directory, then types "q" to quit, yazi leaves the console in the last folder visited.  
 
This tool is undergoing rapid development, and plugins have been known to fail after updating.  
 
I use this for editing filenames, with tags.  A filter function ("f") then makes possible isolating files with a specific tag, marking them all, creating a directory, and dumping all these into a directory.   
 
Cb2Bib
 
This is an extremely useful tool, to me.  I think I'm the only one who uses it in the way I do, to write annotations to records in my bibtex database, and print out annotated bibliographies on demand.  I write, for example, a call number of a book, and notes on pages, compile it into LaTeX, and print.  Very convenient.  The developer was kind enough to explain how to modify the code to incorporate an "annotate" field in the bibtex entry, and also modify the tools that generate a pdf, so an annotation is formated together with the citation.  
 
In this space, I hope to present instructions for the benefit of others.  

Cb2Bib also automatically picks up citations that are highlighted in other programs.  Also, one can copy a bibtex citation from Google Scholar, that is instantly picked up and incorporated into the database associated with the program.  

This program does much more than I am able to understand, but what I can understand, and do---with the help of Pere Constans---is amazing.  
 
This is another reason I don't stick to the commercial / proprietary software packages.
 
Entangle
 
More to follow. 
 
 


Tools of Excellence: Cb2bib, Yazi, Sioyek, Entangle, XnViewMP, Emacs,...: WOW!

In the summer of either 1982 or 1983, I enrolled in a summer school class at UCSB offered by the College of Engineering on Computer Architec...