Due to upcoming changes to Firefox (namely the deprecation of XUL/XPCOM and the switch to WebExtensions add-ons), Zotero is discontinuing its full featured Firefox add-on (there will still be a small helper "Connector" add-on for connecting to the standalone Zotero application). Because the Zotero Firefox add-on is being discontinued, work on Zoterodactyl is also being discontinued.
A few of Zoterodactyl functions might still be useful if adapted to the Zotero connector add-on. I do not plan to make these adaptations at this time. From what I can tell, from what I can tell, XUL/XPCOM deprecation will also deprecate Pentadactyl. It can not be ported to WebExtensions with the current WebExtensions API. Even if a WebExtension version of Pentadactyl could be created, WebExtensions are sandboxed from each other and require a message passing system to communicate, so Zotero would have to write an extra API layer for connector in order for Pentadactyl to be able to talk to it (which maybe they would be willing to do but would require more work).
Sorry about the feature requests that were left open for a while and never addressed. They were in my backlog but I never quite got to them.
Zoterodactyl implements a set of commands, hints, and key mappings for working with Zotero using Pentadactyl without entering passthrough mode.
Note: Some commands require the Zutilo add-on and are neither added to Pentadactyl nor listed in Pentadactyl's documentation when Zutilo is not active. For the most recently updated and complete version of the documentation, see the Zoterdactyl GitHub page.
:zoterofocus: Show or focus Zotero
zf: Executes :zoterofocus
:zoteroclose: Hide Zotero
zc: Executes :zoteroclose
:zoteronewitemmenu: Open new item menu
zN: Executes :zoteronewitemmenu
:zoteronewwebitem: Create website item for the current page
zw: Executes :zoteronewwebitem
:zoteronextitem: Select next item
J: Executes :zoteronextitem
:zoteropreviousitem: Select previous item
K: Executes :zoteropreviousitem
:zoteroshiftselectnextitem: Select next item (holding previous selections)
): Executes :zoteroshiftselectnextitem
:zoteroshiftselectpreviousitem: Select next item (holding previous selections)
(: Executes :zoteroshiftselectpreviousitem
:zoterotoggleitem: Toggle current Zotero item's attachments open/closed
zT: Executes :zoterotoggleitem
:zoteroquickcopy: QuickCopy selected items to clipboard
zq: Executes :zoteroquickcopy
:zoteroyanktags: Copy ("yank") Zotero item tags
Note: Zutilo required
zy: Executes :zoteroyanktags
:zoteropastetags: Paste Zotero item tags
Note: Zutilo required
zp: Executes :zoteropastetags
:zoterocopycreators: Copy Zotero item creators
Note: Zutilo required
zC: Executes :zoterocopycreators
:zoteroshowpaths: Show attachment paths
Note: Zutilo required
zP: Executes :zoteroshowpaths
:zoteromodifypaths: Modify attachment paths
Note: Zutilo required
zM: Executes :zoteromodifypaths
:zoterorelateitems: Relate Zotero items
Note: Zutilo required
zR: Executes :zoterorelateitems
:zoteroedititem: Edit item info
Note: Zutilo required
ze: Executes :zoteroedititem
:zoteroaddnote: Add note to item
Note: Zutilo required
zn: Executes :zoteroaddnote
:zoteroaddtag: Add tag to item
Note: Zutilo required
zt: Executes :zoteroaddtag
:zoterorelateitemsdialog: Open relate items dialog
Note: Zutilo required
z-R: Executes :zoterorelateitemsdialog
:zoteroattachpage: Attach current page to current Zotero item
Note: Zutilo required
za: Executes :zoteroattachpage
:zoterosaveitem: Save item from page
zs: Executes :zoterosaveitem
zS: Executes :zoterosaveitem -attachments opposite
z-s: Executes :zoterosaveitem -attachments add
z-S: Executes :zoterosaveitem -attachments skip
;z: Attach link target to current Zotero item
Note: Zutilo required
Pentadactyl catches some keystrokes (e.g. <Down>
and <Up>
), preventing them from being passed to Zotero (e.g. to select the next or previous item in the case of <Down>
and <Up>
). The Zoterodactyl plugins try to create workarounds for these keystrokes (e.g. J
and K
for <Down>
and <Up>
). Other keystrokes (e.g. <Return>
and <Del>
) are passed to Zotero when it has focus (e.g. so typing zf
to focus Zotero allows one to open the currently selected item by pressing <Return>
and to delete it by pressing <Del>
).
Two of Zoterodactyl's key mappings conflict with default Pentadactyl key mappings (zM
and zR
). Pentadactyl provides alternate default key mappings that can be used instead (ZM
and ZR
).
Keep in mind that in Firefox <C-Space>
opens context menus. So once you have used zf
to focus Zotero and J
and K
to navigate items, you can use <C-Space>
and the <Up>
and <Down>
keys to select other operations on items not given mappings above (e.g. "Open in External Viewer" or "Show File").
Install this plugin by copying it to the ~/.pentadactyl/plugins/
directory (or %USERPROFILE%\pentadactyl\plugins
on Windows). You have to create this directory if it does not exist. Any plugins in that directory will be loaded on start up. Plugins can also be loaded with the :lpl
command. If you modify the plugin and want to load it again, it may be necessary to use :lpl!
to overwrite the previously loaded version.
The plugin needs to be in a plugins
directory of a directory in the runtimepath
setting. If you want to use a different directory than ~/.pentadactyl
, you can add an additional directory to the runtimepath
setting and save the plugin in a plugins
subdirectory of it.
Zutilo is a Firefox add-on by the same author as Zoterodactyl. It provides keyboard shortcuts to existing Zotero functions as well as some new functions and GUI elements for accessing them. In order to avoid duplication of code, Zoterodactyl calls Zutilo functions where possible. Through Zutilo's preferences, it is possible to disable all of Zutilo's GUI elements if you just want to use Zoterodactyl without any other effects from having Zutilo installed (other than a "Zutilo preferences" entry in the Zotero gear icon menu).
Any Zoterodactyl functionality that simply wraps base Zotero functions is implemented independent of Zutilo. In order to avoid clutter and broken functions, the Zutilo-dependent functions are not defined when Zoterodactyl loads if it does not detect that Zutilo is enabled. If for some reason you are toggling Zutilo's enabled status, you can update Zoterodactyl either by doing a :rehash
in Pentadactyl or forcing Pentadactyl to reload all plugins with :lpl!
.
Currently planned upcoming features are generally listed on the wiki or the issues section of Zoterodactyl's GitHub page. If you think there are other commands that other users would find useful, please suggest them by contacting me or opening issue on GitHub.