Sunday, August 2, 2026

Some emacs lisp utilities of mine, that have been useful for me.

Several utilities to ease the pain of working with a  single monitor

Working on a small monitor, like a laptop screen, can be a strain.  To make this easier, I wrote some utilities in emacs lisp.  Another one was written by someone named "Gildea" on a mailing list.  They have been useful to me; perhaps they will be useful to others.  They are simple, and certainly could be improved upon. 
 
First open a second window, horizontally (\C-x3).  Then use the first functoin to enlarge one of the windows horizontally.  It is hardwired to enlarge, horizontally, by 20 character widths, which can be changed. One can just as easily change the sizes of windows by dragging with a mouse.
 

I.   Enlarge one of two horizontally split windows

(defun enlarge-window-very-horizontally ()
  "Enlarge this window horizontally."
  (interactive)
  (enlarge-window-horizontally 20))
 

II.  Flip flop: Move to other window and swap widths.

This utility does two things: it moves the cursor to the other window; and it swaps the sizes of the two windows.    
 
(defun flip-flop-and-change-horizontal-windows ()
  "Swap HORIZONTAL window sizes; move into the other window.  This function
enables one to have two windows visible, but with one very narrow."
   (interactive)
   (let ((current-window-width (window-width)) 
     (new-window-width nil)
     (delta-window-width nil))
     (other-window 1)
     (setq new-window-width (window-width))
     (setq delta-window-width (- current-window-width new-window-width))
     (enlarge-window-horizontally delta-window-width)))

 

 III.  Flip flop vertically (like the above)

This version works with vertically split windows.  This might work better in some cases.  These utilities are minimal, written by a naive emacs user.  I feel certain they can be modified and improved in various ways.  I would like to find a way that the tool above, for horizontally split windows, can move back and forth, even when either or both sides is split into two or more windows vertically.  They sky's the limit, but these utilities are simple, and therefore easy to use and remember.

 

(defun flip-flop-and-change-windows ()
  "Swap window sizes; move into the other window.  This function
enables one to have two windows visible, but with one reduced to two lines."
   (interactive)
   (let ((current-window-height (window-height)) 
     (new-window-height nil)
     (delta-window-height nil))
     (other-window 1)
     (setq new-window-height (window-height))
     (setq delta-window-height (- current-window-height new-window-height))
     (enlarge-window delta-window-height)))
 

IV.  Swap positions of two windows with contents. 

 Another tool was written by a "Gildea" on a mailing list in 1988, possibly in answer to a query of mine.  It enables one to just swap the positions of two whole windows. 
 
 (defun swap-window-positions ()
  "Swap the positions of this window and the next one.
(credit to gildea Nov 88)"
  (interactive)
  (let ((other-window (next-window (selected-window) 'no-minibuf)))
    (let ((other-window-buffer (window-buffer other-window))
      (other-window-hscroll (window-hscroll other-window))
      (other-window-point (window-point other-window))
      (other-window-start (window-start other-window)))
      (set-window-buffer other-window (current-buffer))
      (set-window-hscroll other-window (window-hscroll (selected-window)))
      (set-window-point other-window (point))
      (set-window-start other-window (window-start (selected-window)))
      (set-window-buffer (selected-window) other-window-buffer)
      (set-window-hscroll (selected-window) other-window-hscroll)
      (set-window-point (selected-window) other-window-point)
      (set-window-start (selected-window) other-window-start))
    (select-window other-window)))


 I hope these are useful, as they have been useful to me.

CachyOS

 At this time I would just like to note that I have been using CachyOS exclusively for a couple of months.  An earlier iteration didn't work for me, at the time of the great Archlinux Nvidia debacle that made it functionally impossible for someone with my limited expertise to use my GTX 1050 card.  Too old.  It works, but no longer supported.  

 

As of earlier this year, however, CachyOS automatically chooses the correct older driver version to run this card.  No wonder it climbed up to the top of the hit list on DistroWatch.  I think deservedly so.  I understand that it will also run other cards---the 1650 series-albeit with some manual intervention.  I hate that term, but I would love to have one of those.  My system works quite well, and I was grateful that an NVIDIA card had drivers, even proprietary, that work really well.  I am opposed to proprietary drivers, but I admit I have been using several for years, because I cannot just go and change my hardware choices every time I would like.  I home built, on the cheap, with a nice CPU, some good amount of RAM, good storage, and at least some kind of affordable video card.  It hurts that companies can just decide it's not worth it to support hardware that's little more than 10 years old.  IMO, it's criminal.  PT Barnum had something to say about this.  Basically we are the suckers.  Next time, will there ever be a next time, I will probably go with AMD.  Corporate decisions don't work out for the consumer.  

 

That said, this old card is doing its job.  -

 

-----------------------

 

It's been a few months since I wrote the above.  The system is still running nicely.   I have noticed one thing: updates, which I like to run every so often, take quite long on this system, as opposed to my Thinkpad with it's Intel graphics, because the kernel must be compiled together with the Nvidia bits, on every update.  Even with a 26 core Intel i7, this takes a good long time.  It's worth the wait.  

 

 

  

Wednesday, April 22, 2026

How I got into Emacs (and Free Software)

This is a long tale, not confined to Emacs alone. This is, indeed, a story about why I am a confirmed Free Software advocate. This has been a rocky road. For this chapter, I'll try my best to restrict my discussion to Emacs; but that's impossible. In the late 80s and early 90s, I was living in Chuuk Lagoon, Micronesia. Graduate work at the University of Guam (UOG) marine lab had been interrupted, at the outset of my third year; in Chuuk, my wife was preparing to give birth to our first son.

In my letter of intent for my application to the graduate program at UOG Marine Lab, in 1984, I had written that my first order of business was to learn the marine fauna  of Micronesia, to prepare for future study of traditional marine biological knowledge. A lexicon of marine life would be required. After  two years of classwork, with a working  knowledge of the fauna, in late 1986 I hit the ground running, collecting notes on the names and knowledge of marine animals. 


As  notes piled up, I would obviously need a PC to compile, sort, and analyze the burgeoning information. I had a working knowledge of computers, and had used some of the earliest PCs---IBM XT and IBM AT--- at the Marine Lab. Somehow I acquired a PC, and started messing around with typing in  names, and organizing the data.  I  purchased a copy of SNOBOL4, and began to study it, and SPITBOL, hopeful it would be helpful for string manipulation.   I tried Borland Paradox.   Progress was minimal. 

 

In 1990 and 1991, my life in turmoil I moved to another island, nearby. My Mother came to the rescue, gifting me a Toshiba laptop. I soon  realized it came with no software, not even a word processor.  I made do for a while.  I remember using 4Dos.  

 In  1991, I had remarried, moved again, and had a new teaching job. With a 10W solar panel, the laptop could be used,  and I tried various editors to develop a simple database---a list of animal names with descriptive text.   I needed a programmer's editor that did not mangle the text with control codes.  A linguist from the University of Hawaii sent a demonstration copy of MultiEdit, which did some of what I wanted. But to learn how to type diacritics, I would need to purchase the manual, for over 300.00. On my teacher's salary, this was impossible.  

 At the time, I had been reading Infoworld, and , ran across  a short article buried a few pages in, about the Free Software Foundation. I knew nothing about this, or about Free Software, but the name said it all. I wrote a letter to the FSF explaining my project, and asking for help for an editor. A few weeks later, I received a package with about 13 3-1/2" diskettes, a package that would change my life.  (Whom should I thank?)  On one disk was "Demacs," an implementation of Emacs for the Windows ecosystem, in addition to a number of Unix text tools ported to Windows, by Cygwin, and Unix Text Tools---sort, ptx, grep, find, and other---ported for Windows 3.0.   

 Demacs was a well-functioning port of Emacs to Windows. One of the first things I noticed was the existence of a Tutorial, a genius introduction.  And this was the "self documenting text editor."  Within minutes I was sufficiently able to navigate the interface and to work with text.  I developed a crude understanding of Emacs Lisp, and wrote several low level helper functions for my needs. This software was beyond any dream. 

  Shockingly, in this age of continual modernization, most of the tweaks I developed to my first emacs files still function on today's Emacs 30+, in 2026, not the case for files written on early windows Word versions.  Happily, over the next couple of years, the Gnus Bull, the bulletin of the Free Software Foundation arrived every so often in my post office box. In one of these bulletins, fascinating reading for me at the time, was an article about Unix work-alike operating systems, Linux and FreeBSD.  Later on, on an extended medical visit to Guam, I was able, through generous assistance of the owners of the ISP Kuentos Communications, I was enabled to download Slackware and install it on my Toshiba Laptop.

This meant I could install Emacs directly. The Unix text tools were available directly as well.  My needs are simple, compared to many---if not most---Emacs users, many of whom are programmers comfortable with generating elaborate and extensive code. As my project grew, Emacs was the essential ingredient. Later on I learned of the existence of LaTeX. Eventually, my lexicon was published from camera ready copy generated by LaTeX in the journal Micronesica.  With the help of a programmer at the University of Hawaii Linguistics Department, an Emacs guru, I was able to write an emacs lisp program to "alphabetize" Chuukese in an arbitrary order.  Many other scholars and programmers have helped along the way, on mailing lists, or through lengthy correspondences.   Early on, Professor Hsu at UH mentioned the Band Format---a free form database used by linguists for lexical data.  I could not afford the tools he offered, but I was able to mimic some of the needed facility using Emacs lisp.  

 I was able to implement a tool to convert each record of the band format database into LaTeX code for a single entry, that was typeset as camera ready copy for the ultimate publication.   

 For this carnival, the take home messages for Newbies and scholars was that the Tutorial can provide, in an hour or two, a tremendous introduction to the keyboard use for Emacs.  And secondly, I think it's important to recognize the number of Emacs experts who are willing to assist in such an endeavor as mine.  I have not resorted to a starter kit.   

Wednesday, April 8, 2026

Setting file times in Emacs from Time-stamps in file, or "Created " at start of a file: Generated through Google AI Summary

AI is problematic, but the sheer convenience of it has grabbed my attention.  For tweaking my GNU/Linux system, AI summaries of Google searches come in a few seconds, and they sometimes save hours of research.  It is helpful that low grade links to sources are often provided.  I balk, however, at the damaging infrastructure involved.   

 A recent adventure has been developing a useful emacs lisp tool to change the metadata time stamps of a file from emacs' Time-stamps, when they exist.   

Today I realized I had copied files from another system without specifying to save file metadata.  Could I set the file times of files with timestamps using the "Time-stamp: < >" utility in Emacs?   I searched, and, I must freely admit, I asked for more info from the AI helper of Google Search.  After about 7 or more rounds of providing feedback about  a regular expression that did not work, these functions were provided.  Wow.   The last two of these is probably sufficient for my needs.  I will change the names.

 

(defun my/set-file-time-final ()
  "Sets file time by finding 'Time-stamp' and extracting only the date/time.  From Google AI."
  (interactive)
  (save-excursion
    (goto-char (point-min))
    ;; 1. Find the literal word "Time-stamp" anywhere (ignores #, brackets, etc.)
    (if (re-search-forward "Time-stamp" nil t)
        ;; 2. Look for the first date pattern (YYYY-MM-DD HH:MM:SS) that follows it
        (if (re-search-forward "\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[ T][0-9]\\{2\\}:[0-9]\\{2\\}:[0-9]\\{2\\}\\)" nil t)
            (let* ((ts-string (match-string 1))
                   (parsed (parse-time-string ts-string))
                   (lisp-time (when parsed (encode-time parsed))))
              (if (and (buffer-file-name) lisp-time)
                  (progn
                    (set-file-times (buffer-file-name) lisp-time)
                    (message "Success! Mtime set to %s (Username ignored)" ts-string))
                (error "Parsed '%s' but system couldn't use it" ts-string)))
          (error "Found 'Time-stamp' but no YYYY-MM-DD HH:MM:SS format found after it"))
      (error "The word 'Time-stamp' is missing from this file"))))

(defun my/dired-set-times-from-stamps ()
  "In Dired, run 'my/set-file-time-final' on all marked files. From Google AI."
  (interactive)
  (let ((files (dired-get-marked-files)))
    (dolist (file files)
      (with-current-buffer (find-file-noselect file)
        (condition-case err
            (progn
              (my/set-file-time-final)
              (save-buffer))
          (error (message "Skipping %s: %s" file (error-message-string err))))))
    (revert-buffer) ; Refresh the Dired buffer to show the new times
    (message "Done processing marked files.")))

(defun my/dired-set-times-from-stamps ()
  "In Dired, sync system times for marked files. Files without stamps are ignored."
  (interactive)
  (let ((files (dired-get-marked-files))
        (skipped 0)
        (updated 0))
    (dolist (file files)
      (with-current-buffer (find-file-noselect file)
        ;; Use condition-case to catch files that don't have the stamp
        (condition-case nil
            (progn
              (my/set-file-time-final)
              (save-buffer)
              (setq updated (1+ updated)))
          (error (setq skipped (1+ skipped))))))
    (revert-buffer)
    (message "Done! Updated: %d | Skipped (no stamp): %d" updated skipped)))

(defun my/set-file-time-final ()
  "From Google AI summary session after Google search.  Sets file time from header. Handles: Created YYYY-MM-DD Day HH:MM:"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    ;; 1. Search for 'Time-stamp' or 'Created'
    (if (re-search-forward "\\(Time-stamp\\|Created\\):?" nil t)
        ;; 2. Match the date (YYYY-MM-DD) 
        ;;    Then skip any day-of-week (like Tue)
        ;;    Then grab the time (HH:MM or HH:MM:SS)
        (if (re-search-forward "\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)[^0-9]*\\([0-9]\\{2\\}:[0-9]\\{2\\}\\(?::[0-9]\\{2\\}\\)?\\)" nil t)
            (let* ((date-part (match-string 1))
                   (time-part (match-string 2))
                   (ts-string (concat date-part " " time-part))
                   (parsed (parse-time-string ts-string))
                   (lisp-time (when parsed (encode-time parsed))))
              (if (and (buffer-file-name) lisp-time)
                  (progn
                    (set-file-times (buffer-file-name) lisp-time)
                    (message "Success! Mtime set to %s" ts-string))
                (error "Parsed '%s' but couldn't use it" ts-string)))
          (error "Found keyword but date/time format was unexpected"))
      (error "No 'Time-stamp' or 'Created' header found"))))

(defun my/dired-set-times-from-stamps ()
  "From Google AI summary session.  This calls the function my/set-file-time-final.  In Dired, sync system modification times for all marked files
based on the 'Created' or 'Time-stamp' lines inside them."
  (interactive)
  (let ((files (dired-get-marked-files))
        (updated 0)
        (skipped 0))
    (dolist (file files)
      ;; Open the file in a buffer without switching to it
      (with-current-buffer (find-file-noselect file)
        (condition-case nil
            (progn
              ;; Call your working 'within-the-file' function
              (my/set-file-time-final)
              ;; Save the buffer to ensure metadata is flushed to disk
              (save-buffer)
              (setq updated (1+ updated)))
          (error 
           (setq skipped (1+ skipped))))))
    ;; Refresh the Dired buffer so you see the new dates immediately
    (revert-buffer)
    (message "Batch complete: %d updated, %d skipped (no stamp found)." updated skipped)))

(with-eval-after-load 'dired
  (define-key dired-mode-map (kbd "T") 'my/dired-set-times-from-stamps))

Wednesday, March 18, 2026

Shinestacker for focus stacking: Hurray!!

 This is the first image I processed using Shinestacker.  It's a remarkable and technically advanced piece of open source software.    This software is beyond my skill level, but works incredibly well with defaults.  

 

Sufficeth to say it was very simple, after a somewhat convoluted---but not difficult---installation on CachyOS, to process this stack of 40 images.  I have a CPU with 27 or 28 processors; and this software even took advantage of my aging Nvidia GTX-1050 video card with a mere 3GB of video ram.  25X objective, mounted in UV-curing glass glue from a hardware store.  Too bad about the detritus.  Processing took a few seconds.  


 

Ossicles of sea cucumber Holothuria atra, mounted in UV-curing glass glue.

 UPDATE (2026 May 18)

  Updated Shinestacker this week,  Incredibly, it can accept Canon EOS *.cr3 raw files.  Neither Fiji (unless by trickery), or Helicon Focus can open these files.  The developer of Shinestacker stated that tiff files work better on SS, which apparentely was a major impetus for accepting cr3 files.  It works well, but required more resources.  My 26 core intel i7 cpu, with 32G of ram, and 128G of swap space, works well; shinestacker utilizes all cores, I believe.
 
Some images have shown blotchiness.  In one case, even using .cr3 files did not solve this.  These are microscope images, which may be a factor.  The focus stack of images of ossicles, above, used very few shots, a rather coarse Z sampling.  

The ease of using this software is a huge upside.   Some experimentation will be required to figure out advanced settings, ie, what kind of images do well with pyramid stacking, and which work best with depth masks.  I had some problems on some images; it seemed, perhaps, that turning off balancing may have helped.  These images are fairly consistent in illumination.
 
Hurray for  this software!!! 
 
 

Actually, Wayland is usable. I am leaning on Sway on my laptop.

 Just to bring the conversation up to date.  It is easier to use sway on this laptop---a Lenovo X1 Carbon gen. 9---because it has a HiDPI display.  I3/X11 are problematic, requiring numerous configuration tweaks.  Hyprland is easier, but less compatible.  

 

My personal customizations for i3 are not completely compatible with Sway.  For one thing, I have adopted dropdown windows for a number of applications on i3, which is sometimes problematic, but usually works.  Kitty works ok in this way on Sway.  Emacs, not so much.  The following applications have bindings in my i3 configuration, and work well: orage (calendar); xephem; R).  Emacs is ok, but tricky.  Kitty too can be tricky.  This manner of using i3wm is fantastic for my workflow.  I also have had kmag on a dropdown keybinding, which is useful.   

 I have, as of May, 2026, not made much effort to get all of these utilities working on Sway.  Dropbox's hot icon does not work on i3, so far, for me; on Sway it does work with swaybar, an excellent bar.  

 Tiling WMs work for me.  I3 is easy to configure.  Sway can run ok using the i3 config files, except for edge cases.

 

 

 

A 

 

 

 

 

 

 

Thursday, February 5, 2026

Trying out Sway, an i3wm workalike for Wayland

 A good move I recently made was to sell my MacBook Pro, M2; and purchase a Lenovo Thinkpad X1 Carbon, several years old.  One of the best features of this new laptop is a HiDPI (High Dots Per Inch) screen with a resolution of something like  3200x1800.  It's a remarkable display for other reasons, which I will not go into here.  The blacks are incredible.  

 With my usual Manjaro i3wm, this means that the type is almost unreadable.  With the guidance of several source on the Internet, I was able to cajol the system into somewhat useful settings that most software works fine with.  Along they way, several references passed me by about Wayland, a newer graphical setup that X11.  

 

I am reluctant to make huge changes to a long time stalwart system, but finally I have begun to experiment with Sway, a workalike system to i3, and Hyprland, a fancier tiling window manager, working on top of Wayland.  Both, I am happy to report, work nicely with this  HiDPI screen.  

 

So I installed Manjaro's Sway edition.  So far, so good.  Now I'm at the point of trying to configure pop-up/drop-down floating windows for Kitty, Emacs, R, orage (probably impossible, but this is the best little calendar app I have found.  Once I have set the month, and popped it back up, the same month is show.  Very useful for calendar work), and a ham radio clock, that is actually of little use.  

HiDPI is not a problem.  

 

When I install a new distro, one of the first things I do  is set the user id to "1004", as well as the groupid.  Consequently, the home directory of my previous setup and user are completely accessible, because this was the case for the previous login as well.  I never duplicate the login, out of worry that the dot file tweaks will be incompatible with anything different.  

 

So far, so good.

 

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. 
 
 


Saturday, July 12, 2025

sioyek and yazi

I have set Sioyek as the default pdf viewer for Yazi; actually, probably for the entire system.  

 It was *relatively* simple to do this, after installing xdg-utils-mimeo.  I will not go back through that here, but it's not hard.  

 Sioyek has no native capacity to print.  This is a potential show stopper.  I have attempted to set this up from instructions from some random internet post.  The location of the user config files is in doubt, however.  By "reports," config files should be found in ~/.config/sioyek; however, other reports indicate .local/share/sioyek.  I did install a rather decrepid tool, a gtk-print tool (name?).  My config does not work yet.


Another potential downside relates to the use case for Sioyek, as a pdf annotation tool for research.  When a file is opened for the first time, sioyek indexes the file; this makes searches incredibly quick and useful.  Will this result in cluttering the system after a large number of pdfs are opened?  Probably another lightweight pdf viewer should be established as the default, to streamline the process of reviewing random files on the fly.  

Sioyek is uncluttered, as far as GUI.  There hardly is any GUI.  A fairly extensive set of utilities is tied to keystrokes.  Some of them are not exactly intuitive, at least to me.  


Some facilities:

  • Bookmarking
  • Search in google scholar (may not work right)
  • gg -> go to page 1
  • G -> go to last page
  • rt click -> mark line (not sure this is working with a track pad)
  • highlighting in various colors
  • search highlights
  • "Smart Jumps" to figures or references, with or without links: this didn't work out of the box, for me.
  • mark a location, give character as a name for the mark.

 

Yazi is turning out to be extremely useful.  I use it multiple times a day.  Some useful tweaks:

  • set a much larger preview size, then
  • install a preview to Toggle full view of the preview
  • somehow a special tweak was needed to view tiffs (this wasn't the case when I first tried yazi)
  • bookmarks.  yabm (Yet Another Book Mark) is great.  Another one was incompatible, AFAICT.
  • Zoom plugin
  • In a tips section of the web site, is recommended to install some code in the rc file of the shell, which allows to start with "y" and that leaves the terminal in the last used directory, when quit with "q".  Extremely useful.

A problem: not really a big one: yazi is undergoing rapid and intense development, so incomptibilities arise frequently.   Especially with plugins.

 

 


Some recent useful software additions

 A brief list for now:

  • dysk : concise "df" and graphic
  • sioyek: interesting  document reader.  Keyboard driven, mostly, maybe. Designed for academic papers and textbooks.  
  •  bpytop: A feature-ful process/memory/cpu monitor, text based; similar to top or htop.
  •  

Monday, May 19, 2025

Notes on Yazi

 Yazi is good.  Real good.  I used it over ssh to cull a directory on my second system; it worked as I had hoped, except, perhaps, for color theming.

 Knock on Wood.

 Viewing/reviewing

One of the needs that yazi has fulfilled for me is rapid viewing.  I can only imagine that should I ever be able to upgrade my current machines (RAM and CPU, as well as Storage), viewing would be even more friendly, especially for images.  The ability to flip through a directory of images, mark, and move, copy, or delete marked files, has made a huge difference to my workflow.  The only other tool that is useful in this regard is xnviewmp.  I use a fairly simple set of commands; probably if I mastered tabs and other complexities and plugins, yazi would be even more helpful.

 

By the way, the terminal "kitty" has wonderful facilities built in to work well for viewing images.   I prefer the black background and contrasty color scheme to any other.

 Ranger was good enough, until it wasn't.

Copy, Paste and move and Notes on plugins.

 [Cautionary note: I have lost files through carelessness here, and yazi has some gotchas to be navigated around.]

This is pretty much self-explanatory.  I will try to address this topic in detail at some future time.  For now, I'll mention a plugin that has helped speed these processes: 

  • yamb is a bookmarking plugin that works well.  In the absence of a much needed multi-step backup command, this does a good job when sorting through files and moving or copying them to another directory.  I have gotten around the mentioned limitation by defining  bookmarks for the current from directory, and the currently interesting goto directory,  I define a set of book marks to frequently used directories, as well.  This is an easy tool to master.  Like other plugins, issues have been experienced after updating yazi (it is under fairly intense development).  
  • toggle-pane: This helps when viewing both pdfs and images.  It is possible to configure the mazimum size of displayed images (I'm not certain whether this works for pdfs) by putting this code into ~?.config/yazi/yazi.toml:

                       [preview]

                      # Change them to your desired values
                      max_width  = 1800
                      max_height = 1800
  

       Plugins are found on a resources link on yazi's web pages.  Other sites exist with plubins.

 

Filtering

Filtering is a wonderful way to sort.  It has been even more useful to me, because of a filenaming scheme I have adopted.  I stole this idea from Protesilaos's Denote system.  I have not found denote very useful, but the concept of tags at the end of the filename, before the extension has become a useful tool allowing me to sort files more rapidly.  Here is an example.

    Jones--2060--JargonInBiology__taxonomy_nomenclature_zoology.pdf

I have started avoiding underscores in filenames ("_") in favor of using them in tags.  Interestingly, I saw a web page or thread somewhere about tagging styles, and this is one of several.  I used to use a 10 (or so) character at the beginning of lines in a bibliography, where each position had a meaning.  So anything related to crabs would have "c" in the third position (12ctx8urt-Anon-Crabs of the world) would be sorteable by sorting by the third position.  The Unix (GNU/Linux) sort command worked excellently.  

 With filtering  in yazi, one can narrow down a large folder/directory with pdfs about taxonomy: "_taxonom".  Prot has demonstrated the use of regular expressions to sort even more specifically in, I think emacs dired.  To avoid filtering for "_" in filenames, one would theoretically use a regular expression requiring a "__" (double underscore) somewhere before the "_:" single underscore.  This is probably easy.  Filtering is easier, I think.  It may be that emacs would be better, but so far, aside from a couple of learning experiences, Yazi is working well.

Moving around 

In either the getting started or tips section of the yazi main web pages, is a suggestion that makes yazi more useful.  

Inserting this code into .bashrc (and I think .zshrc as well) makes things easy.

 function y() {
    local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
    yazi "$@" --cwd-file="$tmp"
    if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
        builtin cd -- "$cwd"
    fi
    rm -f -- "$tmp"
}

Then, when in a terminal, type "y" to start yazi.  After moving to another directly, quitting with "q" leaves the terminal in this new directory.

 

A Caution or Two 

 Plugins are often not mutually compatible.  I have tried several others, but some collided with these few i do use.  

Some plugins iexplicably use keybindings that are assigned to other functions by default, and it is not always apparently what key bindings may be used.  <F1> may display a help screen, which may be filtered.  Filtering rocks.  Bookmarks rock.

 

2025 May 19

 

 

             

Monday, February 10, 2025

Unix's and GNU/Linux's Unknown Superpowers: ptx, sort, and grep

The Unix operating system is wonderful.  GNU/Linux is wonderful.  Let me make this distinction, before discussing the aforementioned three tools: GNU is Not Unix. This is a story of how capitalism limits the human spirit, in order to extract financial gain.  

 Before writing about the remarkable tools provided by Unix---and now, the GNU computing system (one of the scions of which is GNU/Linux)---one may be forgiven for visiting certain concerns, including the generation of incomprehensible wealth by a few men who now seek to control our lives in ever more of their detail.  I suggest that this wealth was made primarily through marketing, on the backs of the ingenuity of other men, some of whom were out-maneuvered and left behind by certain well known business men.  

It came about, during the early days of computing, long ago: a gifted programmer by the name of Richard Stallman worked at MIT Artificial Intelligence Laboratory (MITAIL), along with other highly capable computer programmers.   Events during that period led to unforeseeable changes, as a behemoth technical-industrial complex grew beyond all imagination, based on deft slight-of-hand and shrewd business moves, as entrepreneurs snatched up computer code, patented and copyrighted it, and concealed it from hapless consumers.  Shrewd manipulations of programmers and code enabled a few men, in less than 50 years, to accumulate over half of the wealth of the financial world.  

This they were able to do by convincing consumers not to share, with the complicity of the legal "intellectual property" infrastructure; to violate the golden rule that many had cherished since childhood.  Make many copies of a useful computer program for a few pennies each, and set prices  arbitrarily high.  The consumer will be so mesmerized by the utility and flashiness of these programs that she will believe you are doing her a favor, selling it so cheap.  Convince governments to sign lucrative contracts.  Update products at speed, and charge for the updates.  Sue public schools when they did not update to newer licenses.  the profits would be almost unlimited.  And, now, change the business model and lease software, so leverage even greater control, and much greater profits. Never do unto others anything without transactional benefits to self.  Above all, do not share a computer program, even though they are useful.  This was a massive wealth grab. 

Tim Wu has written about the  entrepreneurs who built incomprehensible wealth by these same strategies: seize control of the media channels, prevent newcomers by various and nefarious means, and charge arbitrarily high rates for the use of this now valuable commodity:  information.    Radio. Telegraph, Telephone, and Television have been used to manipulate the public, by employing choke points---selective filters---to manipulate elections, gain power, and sell snake oil.  The political landscape has been altered in the interest of gaining more power, prestige, wealth, and control.  It's OK, these persons believe, to lie and deceive.  Today's politicians have gained success by following a model of radical "gas lighting," and in doing so have built empires  of corruption and greed.  

You may know this story. 

 Richard Stallman has been painted under the dark lights of deception as an extremist, even among other adherents to Free Software.  This is how the insidious tactics of industry and politics can influence our opinions to their own benefits.  The Petroleum Industry, in a similar manner, convinces us that global climate change is a hoax, that CO2 is fine.  Our politicians convince us, who are eager to consume their distorted and deceptive messaging, of these things, and many others.  We know they are lying, but the steam engines of their corruption are traveling down the tracks with such unrelenting force and momentum that they seemingly have taken over our own minds and hearts.  

 This is about one little part of the story. 

The MITAIL was at the forefront, in those beginning days of computing.  Richard Stallman was there; he noticed that the software interface of their very expensive printer was inefficient, klunky.  In the hopes of improving this interface, he kindly offered to the company that owned the patents,  to tweak the software and make it work better.  The manufacturer, however, was unwilling to open up the code behind that software, fearing loss of control and profit if it ware revealed.  

This is an important story, but this is not our story today.  Suffice it to say that Richard Stallman decided to do an end-around, in the finest traditions of human cooperation and sharing.  The Unix Operating System, owned by Bell Laboratories (AT&T), was an outstanding work of programming, a thoughtfully produced system of software, an interface of great utility, with numerous subprograms attached to a central kernel, making a whole that by far exceeded the sum of its parts.  But AT& T owned Unix. In the capitalistic world, this was a fantastic money maker.  But the cost of ownership was onerous, making it impossible for the average computer user to purchase.  And as Stallman had already learned, the impediments that proprietary software posed to even the best programmers presented various difficulties---even beyond simple ownership.  The experience with a printer had taught that lesson.  


And what about sharing these wonderful tools?  Stallman recalled an earlier time when the many talented programmers and users at the MITAIL had freely shared programs they had developed.  As a consequence of this open access to the universe of such software programs, even greater programs were spawned from the synergism...  But now many of those programmers had been enticed to leave this world by unimaginably lucrative contracts.  But  these contracts had been concealed within a trojan horse: the non-disclosure agreement.  The code, they promised, they would not share.  And even the end users, who purchased such programs today as Photoshop, Lightroom, games, typing tutors, graphics printing programs....  ad infinitum, are coerced into not sharing the software they purchase.  The industry is serious about this limitation.

So Richard Stallman reached out on the internet to propose a collaboration of programmers to build a new computer system, a free system, that could be "shared without dishonor."  Remember how Unix comprises a set of software units that are hook in to a kernel?  Those units include various commands: copy and move files, for example.  Even typing on a keyboard is handled by tools hooked into the kernel.  The construct, from a plethora of these units, is an Operating System (OS).  Such operating systems as the proprietary MS-DOS, Windows, and MacOS are example of proprietary OSes.  It is forbidden by the proprietors of these OSes to share the programs.  At great expense, these companies have constructed elaborate schemes to make it difficult or (they hope) impossible to share these programs.  

 Do you see where we are going with this?  This massive construct, including now Microsoft, Facebook, Apple, Google, Oracle, Adobe, and others, has used a strategy of concealment, of forcing others to not share, to build huge empires, and horde wealth.  Intimidating the consumer, for example by suing Portland, Oregon's public schools to force purchase of contracts for every copy of windows that had not been updated, as "required" by the manufacturer.  

But GNU is Not Unix.  Richard Stallman recognized Unix as a wonderful model for an OS.  If thousands of programmers all over the world, connected by the Internet,  were to each write one or a small number of   utility programs, mirroring those that perform the functions  of  the Unix programs, while avoiding even any appearance of copying the Unix code, a new operating system could be built up through community action, a citizen-built computing system.  This system was successfully built.  Even a protracted legal challenge by the owners of Unix, SCO, many years later, could not find any copied code in the GNU/Linux operating system.

When I was isolated in Chuuk Lagoon, I had been conducting research that required access to computers.  My family donated a laptop computer, but the Windows OS was clumsy, and, to cut to the chase, could not help me with my project.  An editor that had been sent to me by a linguist at the University of Hawaii was capable, but it was "cripple ware," in a sense, and without the manual---which sold separately for hundreds of dollars--I could not proceed.

 

 The Free Software Foundation (FSF) responded to my request for an editor, sending a version of the Emacs editor ported to Windows, along with 14 disks of Unix tools, also that would run on Windows.  This was just what I needed.  Among these tools were a number of Unix text tools, opening a window into a new world of possibilities.  Very important to me were sort, grep, and ptx.  These, as far as I am concerned, are core Unix (hence Linux) superpowers. 

sort

Windows had a sort utility, but it was extremely limited.  In fact, the more I learned of the tools granted to me by the FSF, the better I understood the fraud that had been perpetrated on the public, corporate world, and governments by Microsoft.  I can liken the difference between the facilities provided by Unix (and later by Linux and FreeBSD) is comparable to the difference between a set of cheap carpenter's tools, and professional quality tools.  GNU sort is the Cadillac of sort programs, the Rolls.  

Later, on Guam, I was able to download a copy of the new Linux OS on Guam.  It was then that I discovered liberation.  From that day, in the early 1990s, until today, in 2025, I never never felt comfortable on a Windows computer.  At that time, one of the biggest differences was that Linux was capable of doing true multitasking, while Windows only could do one operation at a time.  With GNU/Linux I could type a letter while printing a different document, and running another process in the background.  Another difference was the Linux did not crash.  Let me repeat, it never crashed or locked up.  Windows regularly did so.  

grep
 
 I will not explain grep.  Today, in the 2020s, one can run grep on Windows machines.  Suffice to say that grep is a tool that enables searching through a set of files for a search term, and printing to the screen a list of matches. With pipes (signified by the character "|", one can direct the output of grep to another program, like sort.  Then, from sort, one may direct its output to less, a better file browsing tool than Unix's more, a tool that pages through a file.  To do this one would type:
 
    $ grep <filename.txt> | sort | less

 

ptx

 My need was specialized, as I was dealing with lexical text, lists of animal names.  To weed through these, I found ptx was incredible.  Ptx means "permutated index."  What follows is a small segment of output from a search of a text file about flowers and seasons of fishing. 


  /Luma, altitude 100-125 meters,   flower, August 4, 1921, Garber no./
      /\section{Burrows: a different   flower, and palolo.\hfill{}\textsc/
     specifically, he does mention a   flower.
     with certain things. There is a    flower called bust ginger;/    /time
      \textit{Erythrina\/} sp. as an      indicator species.            /about
        /constellation as a seasonal     indicator, he refers to this/
   a resident of Wonipw,/       This    indicator would only be useful to
   the/    /solar alignment as a key   indicator of the   emergence of
      /\hfill{}\textsc{whale:season:    indicator}} \label{sec:org5e260c7}/
     /tree fruits are ripe, it is an        indicator that whales are running/
Samoa/    /was used as a seasonal  indicator on some islands (e.g.,
  /2015, Trees of Yap:  sometimes   indicator of seasons} \label{sec:/
   . \textbf{Sometimes used as an   indicator of season.}       /flowers
   a resident of Wonipw,/       This   indicator would only be useful to
    /variegata\/} flowers in the dry   season, and has been mentioned (/
      and that it flowers during dry   season.       /of year of flowering,
      /these two periods the iéboua   season; the \%\%    season of the/
       /the iéboua season; the \%\%   season of the sun or heat iéboua-/
    /or heat iéboua-délat, and the   season of cold iéboua-tsiam.


tldr

 

Tldr (too long didn't read) is a modern innovation that summarizes the man page for a command.  In Unix, it was specified that who ever wrote a program must provide a "man": page, a manual to its use and options.  Here is output from tldr:
 
$ tldr ptx

  Generate a permuted index of words from text files.
  More information: <https://www.gnu.org/software/coreutils/manual/html_node/ptx-invocation.html>.

  Generate a permuted index where the first field of each line is an index reference:

      ptx --references path/to/file

  Generate a permuted index with automatically generated index references:

      ptx --auto-reference path/to/file

  Generate a permuted index with a fixed width:

      ptx --width=width_in_columns path/to/file

  Generate a permuted index with a list of filtered words:

      ptx --only-file=path/to/filter path/to/file

  Generate a permuted index with SYSV-style behaviors:

      ptx --traditional path/to/file 

Saturday, October 12, 2024

The Free Software Foundation (FSF) is a beacon

I just stumbled upon a statement on the website of the FSF (fsf.org) about the appointment of three new board members of the organisation. I am impressed. The FSF has been on my radar for many years, as I have followed developments in the Free Software world, and used Free Software for my own work. I have been a devotée of free software for over 40 years, as a user. These people at the FSF, as well as the Electronic Frontier Foundation, and GNU: what's not to like? Who is more committed to the concept of free software, free information. freedom from repressive copyrights and patents? Fantastic! The FSF!

Friday, October 4, 2024

VIPSDISP: A quick viewer for jp2 files and for large files in general.

 https://forum.image.sc/t/new-version-of-vipsdisp-a-free-open-source-linux-image-viewer-for-very-large-images/70979

 

Seemed to work fine.  On Manjaro GNU/Linux I had to install a library: openslide.  After doing this, this program started fine.  

 

  

Wednesday, August 14, 2024

Some grousing: I've been experiencing loss of files and directories

I started working on a directory heavily, to aggregate and organize projects into folders, containing various files, mainly PDFs, images, and random other files, including drafts and "sweeps" related to some of the projects. I have some duplicates, for some of the projects; but with all of the work I've put in over the past few weeks, many files have been lost forever. It is my intention to document here any information relevant to this and other recent glitches or losses of data. I am convinced that MacOS is a scourge. I dropped around 1500.00 on a MacBook Pro, M2, 14", earlier this year. I have long avoided Macs; it was my hoep that I would be able to gain some advantages to my work. But I have lost,in aggregate, probably jmore than I have gained. Problems begin to crop up in regard to copying or syncing directory trees between the mac and the Linux box. - A suite of unresolved problems around the case-insensitive file system of the MacOS. - Dropbox sync issues. This has become a serious problem. I think either I have to completely quit MacOS or figure out a way to convert my data all to a filesystem that is case-sensitive, on the Mac. A plethora of small, hidden files now pollute my directories. Since I have lost files on the Linux Desktop, one obvious way to re-connect with many, or some, of those files has been to tar up an entire directory and copy it via ssh to my desktop. Thi does work, but this is where I introduced a massive number of these invisible files onto the GNU/Linux system. Apple's amazing Finder application is one of the culprits, if not the main one. These tiny files, according to one source in an online forum in which a problem, similar to mine, was discussed stated that these files cause directories to be unseen on other operating systems, possibly Windows. I have no way, yet, of finding out whether this has happened to my system; and, anyway, I have reconstructed some of the folders (directories) on my Linux desktop, which means I have commited mayhem on the filesystem as it existed previous to the apparent deletion of important directories. I have entertained the possibility that my incompetence has conspired with a new console based file manager, yazi, that i have come to depend on as I sorted---and contiue to sort---files into topical higher level folders/directories. Fumble fingers. GUI file managers like nautilus have given me fits in the past. Getting better.

Wednesday, July 3, 2024

Yazi: a swiss-army utility, for multiple platforms

 I have been using Manjaro for years, now.  Every so often I contemplate installing Arch, which I like, which is not polluted by Manjaro-specific tweaks; but (1) in spite of assurances, it is problematic to install; and (2) none of the other Arch-based distributions have worked well for me.  

Today I want to mention and recommend Yazi, a text/terminal-based "file manager," similar to ranger and a few clones of ranger.  Yazi is, in most respects, the best of the breed.  Yazi, with a few tweaks and some steep uphill learning, made short work of  culling some 150GB of images.  No other tool has been as efficient.   For me.

The home page for Yazi may be found here.

Configuration

Here is where I mention the steep learning curve.  The usage of this tool was not immediately apparent to me.  This is probably on me; eventually, I found the keybindings in the Quick Start page on Yazi's home page.  Not all of the key strokes were either easily understood, or found.  On my MacBook, the color of my terminal interfered with those of Yazi, so I had to read further, and learn to install a theme; the concept and terminology of themes in Yazi were not intuitive.  For me.  Once I figured out how, it was possible to install a theme in the configuration file; various config files are located at ~/.config/yazi.  

 Previewing images

I was able to view images as soon as I had installed yazi on both the macbook and my linux desktop.  But the image was a little small.  I found a couple of things that helped: I learned I could edit the configuration file that determined the maximum image width; after that, the system ran a triffle slower, but I could see the images.  A plugin called "max-preview" enabled expanding the preview even further, in some cases.  I won't explain.  More information is available on the image-preview page of Yazi's home page.

Previewing works nicely on the kitty terminal emulator.  I like kitty, because, out of the box, it is fast, and has a stark black background and intense coloration of text. 


 Bookmarks

Ranger allows definition of keybindings in a more intuitive way (to me) that enabled me to define keystrokes to jump to certain folders/directories that I used frequently.  I just learned to three bookmarking plugins for Yazi that enable something similar, and at least good enough.  bookmarks-persistent, and bookmarks. 

More information on plugins can be found here.

After all that

 A rabbit hole was involved.  But along the way I learned about several other tools that, amazingly, integrate seamlessly (sort of) with Yazi: fzf, zoxide, ripgrep, fd and others.  This is a remarkably polished tool, for a package that has been undergoing rapid and apparently continuous development.  


I recommend installing the development version, which is the default version of yazi in the Arch ecosystem's AUR repository.  This enables some of the more advanced tools.


Fortunately , ranger, a tool I have used for years to browse and sort files and directories, does not work anymore---at least easily---for previewing images and PDFs.  In desperation I reached out to Mr. Google, and discovered a few others.  Nnn is unworkable.  I has never worked out of the box, which was a show stopper for me.  Some others exist.  Yazi appeared out of the mists, and answered my call....  

For now, links on the website of Yazi---a site that is well laid out---point to more information about plugins and other vagaries. 


 

Tuesday, April 4, 2023

Thoughts about Manjaro, Endeavour, and Gentoo: Recent Dives into the rabbit holes

I have tried Endeavour Linux in the past; something always feels wrong about it.  It has some good points, though.  When I saw it overtook Manjaro, on Distrowatch, my curiosity got the better of me, so I installed it. 

I still like i3 better than other Desktop Managers (KDE is interesting, but slower, for me).  So I reached for the i3 install.
 
Once again, I am disappointed.  Mostly, it's because of the difficulty I had trying to use Endeavour's idiosyncratic customized i3 setup.

 

Pros

  • It seemed faster (maybe my older Manjaro is tangled up in knots?)
  •  My Manjaro is well worn, feels good, but there are many little issues.  Endeavour felt really speedy.
  •  Quick to boot.
  •  

 Cons 

  • i3 is intractable to me.  It seemed even more difficult than the last time. 
  • Installing the regular config file did not work for me
  •  I do not enjoy the wallpaper
  • Ranger is not installed


On the whole, Endeavour was overwritten in one day with Manjaro.  Manjaro is easier to install, and the setup is familiar.   This is regrettable, because I really want an easy-to-install Arch Linux, with Arch repos, without the manjaro overwatch.  



Tried to install Gentoo recently


About 15 years ago, Gentoo was my favorite distro.  I did not like that updating required more than a day, in my aging (but not horribly ancient) hardware.  Maybe it's time to try again?   


Distrowatch's recently featured review of the Gentoo LiveCD received the highest KUDOs of any I have recently read.  So shouldn't I try it?  

The Live CD is nice.  So I tried to install from the Live CD.  There is no Calamares-equivalent installer.  I followed all the steps.  The Boot Manager did not work.  


So I gave up.  I have work to do.  I cannot spend days installing a new OS.  My machine might be up to Gentoo, but I'd have to rein in my penchant to update every few days.   


I never got to find out whether KDE libraries are still a gordian knot on recent Gentoo.  Also, it's a huge learning curve.  Maybe I'll try one of the easy-to-install  Gentoo shortcut distros, but my patience would be certain to be tested.  There are too many steps for everything.  

I might try again.  Maybe on a clean machine.  I want to try Apple Hardware.  

 

Why not Apple M1 or M2?

 The need for speed has me looking at MacBooks and Mac Minis.  


The biggest need for me is an easier to use search function.  The virtual folder feature is so clean and cool, it might be just what I need.  Or maybe I'm fooling myself.

 

Arch and Manjaro

Manjaro is easy to install.  It is my go to system recovery distro.  Let me explain: The System Rescue CDs leave me at the lurch: I still have to dig around, and I don't do well at that.  I'm what might be called a High-Skilled Linux User Without Computer Skills. I can run a system, but the finer points of system tweaking---involving programming---are a massive challenge.  

I have work to do.  GNU/Linux is my biggest ally, but I don't have time or inclination to spend more time, for example to learn to install Arch every few months.  Arch's supporters say that the Arch installation process is a learning tool.  I've learned it too many times already.  Arch is easier than Gentoo.  Gentoo is too much power; more than I can handle, and I cannot keep it on the road.  Arch is the next step toward independence, but every time, I have ended up stepping on my toes, tripping myeself up, and having to re-install.  Because it's easier to install (esp. with Manjaro) than to dive in to the problems.  Even using the greatest help system: Google and the multitudes of users.  I am so dependent on these folk.  How can I repay it forward?  


:-)

Tuesday, October 12, 2021

Richard Stallman Leaves FSF Again

From DistroWatch.com

John Sulivan, the executive director of the Free software Foundation (FSF), has announced that Richard M. Stallman has resigned his position as president of the FSF. Stallman is best known for his work in creating the free software movement and starting the GNU project, which develops free software that is used by nearly all Linux distributions. Stallman's hard stance on software licensing, along with his controversial views on some social issues and brash communication style, have often made him a divisive figure in the free and open source software communities. This has occasionally led to people petitioning the FSF over the years, asking Stallman to step down.

The most recent controversy around Stallman gained more media attention than usual and resulted in several FSF members threatening to cancel their memberships. Members of the GNOME team announced their intention to cut ties with the FSF and GNU if Stallman did not leave his position. The Free Software Conservancy also placed a similar call for Stallman to step down, stating: "When considered with other reprehensible comments he has published over the years, these incidents form a pattern of behavior that is incompatible with the goals of the free software movement. We call for Stallman to step down from positions of leadership in our movement.". Stallman has also resigned his position at MIT, citing "a series of misunderstandings and mischaracterizations" as the reason for his departure. 

 I have no idea why.  Stallman deserves a good deal more respect than he has gotten.  Over the years, I have been sickened by comments I have seen on various mailing lists and forums.  Many of them comprise little more than offhand name calling.  No question, Richard Stallman's ideas are radical, when taken against the background of a society which is consumer centered and oriented around proprietary commercialism.  

 The best defense of Stallman is to point to the GNU Manifesto.

https://www.gnu.org/gnu/manifesto.en.html 



 

 

 

Friday, December 11, 2020

Interesting Tools

Exa 

Found on https://the.exa.website

I recently stumbled upon exa, a superior (IMHO) ls workalike.  Exa is found on it's own web page.  I installed it from the community repo on my Archlinux machine. It's a pretty amazing take, not only colorized but with some excellent features as well.   I have found it a pleasant alternative.  My bash aliases:

alias lsl='ls -lrt --color=auto'
alias lsla='ls -lrta --color=auto'
alias le='exa'
alias lel='exa --long'
alias lela='exa --long --all'
alias let='exa --tree'
 

On the exa web site is found comprehensive documentation of the numerous options.

UPDATE (July3, 2024): Eza is a community fork of Exa.  I will use that now. 

Kitty :: "the fast, featureful, GPU-based terminal emulator"

Found on https://sw.kovidgoyal.net/kitty/

The git repo is at https://github.com/kovidgoyal/kitty

Of late, I have struggled with terminal emulators.  The well known xrvxt was difficult---for me---to set up.  On my archlinux and manjaro boxes, kitty has great colors, and it is simple.  I am intrigued with the "gpu based" part of the description.  I am uncertain how much advantage is derived from being gpu-based, or whether I need to take special steps to compile it with support for my gpu.   For now, it seems quick.  I have little need at this point for extra features.   The developer of kitty, Kovid Goyal,  has produced some other intriguing pieces, including Calibre and an interesting keyboard-based browser, vise.   

I am puzzled that I have not been able to use kitty consistently in my dropdown / scratchpad-based terminal setup---borrowed from Luke Smith.  The reasons for this elude me.   I can only imagine that an entire world exists consisting of the meta data and meta functions of terminals.   I have tried urxvt, su, xfce4-terminal, alacritty (another "gpu-based" terminal),

 

Others: a short list of programs useful to me:

  • orage
  • powerthesaurus: together with the emacs package by the same name
  • eepclock
  • xnviewmp
  • posterazor: blowing up a graphic to print on multiple pages/panes
  • dillo: a delightful lightweight browser---I use it for documentation.
  • xtide and friends
  • gri



My Free Software Story, a chapter

 For me, Free Software is a big deal.  My first whiff of it came from an article in InfoWorld, which I had subscribed to because I was interested in computers, and because it's free.  An article was describing or announcing something to do with the Free Software Foundation (FSF).   I had been standing on the precipice of a project to collect animal names in the language(s) of Chuuk Lagoon, where I was living, teaching, and learning.   My intention was to learn the names of animals so I couild discuss them with local fishermen, in furtherance of my plan to study traditional knowledge of marine life.    

I had received a computer as a gift from my mother, a Toshiba laptop, a really nice one.  But my mother did not understand that to use a computer, one needs software.  I might have had Microsoft word; I don't remember.  I had been living off-the-grid on the island of Tol, using a 10 Watt solar panel to trickle charge a 100 Amp-Hour deep cycle battery that had been given to me by someone in the U. S. Airforce CAT Team (short for Civic Action Team).  I also had a portable HP printer that I rigged up to run off of 12 Volts.  Software was the week link in my plan to "digitize" the names I had been writing down.

During my time in Chuuk, I had become known for my interest in animal names and any thing at all about the behavior, ecology...anything...about marine animals.  And about fishing.  Actually more just about ANYTHING anyone could talk to me about, pertinent to marine life.  Students were my teachers.   

 

I had tried to write the names down using the rudimentary editing software I had---possibly Microsoft Word.  But I could not easily write the diacritic marks used for some vowels in writing Chuukese.  I had approached some linguists at the University of Hawaii.  One of them, Robert Hsu, was kind enough to send a "demonstration copy" of an editor called "Multi-Edit" that was capable of doing what I had in mind.   One of the tricks among software vendors is to disseminate these demo, or evaluation, copies, but charge high prices for a full functioning copy.   I was working at a local Junior High School; my take-home pay was barely enough to cover food for the extended family of my wife.  To obtain the fullly enabled copy of the cripple-ware program Multi-Edit, together with a manual, would cost 300.00.  Not a chance.

I tried all kinds of things to try to learn how to type diacritics in Multi-Edit, but had failed.   When I saw the words "Free Software Foundation" in a small one-column article,   fewer than 15 lines long, my imagination ran wild.

 That was a time before the Internet had grown into what has now become.  Snail mail was the only mail, and on islands like Tol, accessible only by motor boat, and with not mail delivery, the "snails" servicing the mail were extremely slow.  I was spending way too much money on stamps in those days.  I wrote the FSF.  

 

Most of my letters never elicited a reply.  I was, therefore, shocked to receive a small box from the FSF some weeks later!   I had described my lexicon project in my letter to the FSF.  Whoever had read my letter must have understood my plea: I had received over 10 of those plastic 3-1/2" disks full of free software compiled for Microsoft Windows.   Remarkably, included in this package were a number of the Unix text tools, for sorting and manipulating text---beyond my wildest dreams.  And, of course, GNU/Emacs, in the form called "Demacs," a version ported to Microsoft Windows by two Japanese workers.   The unix tools were ported very early during the seminal stages of the Cygwin Project. 

These tools were immediately useful to me.  The biggest deal for me was that Emacs comes with documentation built in, as TexInfo files.   Within a shoret time I was able to figure out how to type in diacritical marks.  At the time, I had plenty of free time, so I was able to read most of the documentation, and set up Emacs to work for me, for useful work.   My innovations, made over the years, are still included in my init file!   

The FSF produced a "GNUS Bulletin", I think quarterly.  I had become a believer in this software, and  I read the GNUS/Bull from cover to cover.   At some point after a couple of years, a small article in the GNUS/Bull announced that two unix clone operating systems had become available:  Linux was one; the other was Free BSD.   When I traveled to Guam, I was able---with help---to download an early version of Slackware Linux.   

GNU/Linux had me, right from the start.  Free Software enabled my project.   Operating System it has been built by community action.  This story has been told many times.  Seldom has it gained traction.  But still, GNU/Linux is a phenomenon.  


As a teacher, at my schools were to be found dedicated administrators: that is, dedicated to buying all the possible proprietary software that government money could buy.   I knew that GNU/Linux was superior.  But it required some learning.   I taught some of my students to install and use GNU/Linux systems, and to build computers from parts.   


Some emacs lisp utilities of mine, that have been useful for me.

Several utilities to ease the pain of working with a  single monitor Working on a small monitor, like a laptop screen, can be a strain.  To ...