The problems on Linux are going to be tricky. The CTR-key issue happens on one distro but not another. I think the difference is whether X11 or Wayland is used as the window manager - my VM that uses (I think) X11 recognizes the key combo while the Wayland one (again, I *think*) does not.
In addition, in the second VM, Linux Mint, based on Ubuntu, has an entirely new problem - when I load one particular outline (not my workbook) I get the following traceback, and although the outline loads there is no menu bar:
Unexpected exception reading '/home/tom/Leo-projects/zettel-browser/zettel2.leo'
Traceback (most recent call last):
File "/home/tom/git/leo-editor/leo/core/leoApp.py", line 2399, in doPostPluginsInit
c = g.openWithFileName(fn, gui=g.app.gui, old_c=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoGlobals.py", line 3748, in openWithFileName
return g.app.loadManager.openWithFileName(fileName, gui, old_c)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoApp.py", line 3182, in openWithFileName
return lm.openExistingLeoFile(file_name, gui, old_c)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoApp.py", line 3391, in openExistingLeoFile
v = c.fileCommands.getAnyLeoFileByName(fn, readAtFileNodesFlag=bool(previousSettings))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoFileCommands.py", line 960, in getAnyLeoFileByName
v = fc._getLeoFileByName(path, readAtFileNodesFlag)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoFileCommands.py", line 1051, in _getLeoFileByName
recoveryNode = fc.readExternalFiles()
^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoFileCommands.py", line 1081, in readExternalFiles
fc.setPositionsFromVnodes()
File "/home/tom/git/leo-editor/leo/core/leoFileCommands.py", line 1401, in setPositionsFromVnodes
current = self.archivedPositionToPosition(str_pos)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoFileCommands.py", line 1239, in archivedPositionToPosition
return self.c.archivedPositionToPosition(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoCommands.py", line 3689, in archivedPositionToPosition
if p.hasNext():
^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoNodes.py", line 924, in hasNext
parent_v = p._parentVnode() # PR #4767 # May throw ValueError
^^^^^^^^^^^^^^^^
File "/home/tom/git/leo-editor/leo/core/leoNodes.py", line 1388, in _parentVnode
raise ValueError(f"{tag} Empty p: {p!r} callers: {g.callers()}")
ValueError: p._parentVnode Empty p: <pos 140055864398400 [2] None> callers: setPositionsFromVnodes,archivedPositionToPosition,archivedPositionToPosition,hasNext
Note that this outline has a few nodes that have neither headlines nor body text (I'm using them as visual spacers). It loads normally on Windows, and apparently so on the other Linux VM.