Making Zotero more keyboard friendly

This might sound Luddite in the era of touch-everything, but I think a lot of us who use the same software 20 times a day very soon find that keyboard navigation is faster and more accurate than using the mouse. From that point of view, Zotero falls short of being keyboard friendly. Two kinds of improvements suggested:
1. Pull-down menus should be completely keystroke receptive(is that the right phrase?): e.g., currently, alt-F pulls down the File menu, but then hitting x does not result in Exit. Most Windows software complies with such conventions. (If "Exit" and "Export" have the same starting letter, underline x in Exit and use it to activate Exit.)
2. More flexibility in customizing keyboard short-cuts. Right now, one can only change the letters, but everything is Cntrl+Alt based. Please allow users to choose other combinations (Shift-Alt, Cntrl-Shift) etc. because many of us have already set up Windows shortcuts to other programmes using Cntrl-Alt.
  • edited July 19, 2013
    You're using Zotero Standalone right ?

    1. On Windows, Alt-F, then x should close Standalone, at least in the English version (that's coded here). It works for me with the French version (Alt-F, then S - for Sortir) but not with the English one [and none are underlined]. I think it's a bug.
    Alt-F, then c works though (Close - but it hasn't the same function)

    2. I'm not sure but Ctrl-Alt combinations are used because Zotero was developped first as a Firefox extension and that was (maybe) the best way to avoid shortcuts conflicts.
  • FWIW, the Firefox version is highly customizable for keyboard via keyconfig (or, I believe, vimperator) and Zutilo, so if keyboard shortcuts are important to you, you may want to consider that. (While Zutilo does work on Standalone, keyconfig doesn't, which means this won't work in Standalone).
  • I did guess that Cntrl-Alt was used to avoid conflicts in FF, and I did look at Zutilo. But I think increasingly people may be moving to the standalone version, and I hope the development team will consider improving keyboard customizability for the standalone version. IMHO combinations like Cntrl-Shift or Alt-Shift are equally FF-safe as Cntrl-Alt.
  • I use Keyconfig with Zotero Standalone. You just have to access its interface by clicking on "Preferences" in the Add-ons Manager (Tools->Add-ons Manager to get to it, in OS X at least).

    Also, the latest version of Zutilo on GitHub ( https://github.com/willsALMANJ/Zutilo ) includes a Keyconfig-like interface for mapping some useful functions without having to install Keyconfig. That version hasn't been submitted to addons.mozilla.org yet.
  • edited July 26, 2013
    See https://forums.zotero.org/discussion/25927/shortkey-for-save-to-zotero-function-for-blind-people/#Item_5
    IMHO combinations like Cntrl-Shift or Alt-Shift are equally FF-safe as Cntrl-Alt.
    This isn't the case—Firefox uses Ctrl-Shift for many things, and doesn't use Ctrl-Alt—but we're now better about intercepting Firefox shortcuts without overriding them completely (which used to be an option in Zotero to get around potential conflicts). Because of this, and some other issues raised on that thread, I'm considering changing all of Zotero's shortcut keys on Windows and Linux to use Ctrl-Shift instead of Ctrl-Alt. Post to that thread if you have feedback.

    (Shortcut keys actually appear to be broken completely in Windows and Linux in 4.0.9, at least for me, but I'm also fixing that.)
  • @WillShanks: So I downloaded Keyconfig.xpi, and installed it as an add-on in Z-standalone. I went to Add-ons, Extensions, Keyconfig, Options, but then I am stumped, because i don't know what the command syntax is for Zotero commands such as New item.Any suggestions where to find the command syntax (to be used to map the key)?
  • Will has helpfully layed that all out in the Zutilo instructions:
    https://addons.mozilla.org/en-us/firefox/addon/zutilo-utility-for-zotero/
  • There are several ways to create a new item. The Zutilo instructions have the commands for creating an item from the current page using Zotero translation and for saving the current page as a web page item.

    For creating just a blank new item, I use:

    document.getElementById("zotero-tb-add").firstChild.showPopup()

    which is equivalent to clicking on the green "plus" icon. You can then use the arrow keys and press enter to choose the kind of item to create. That function (and possibly a few more that aren't in Zutilo) is used in my Pentadactyl mappings for Zotero which you can see here:

    https://github.com/willsALMANJ/Zoterodactyl

    The instructions aren't as helpful as the Zutilo ones, but if you look at the source code in the plugins directory it should be easy to see which commands are which.
  • Firstly, thanks to Dan for making Cntrl-Shift the default key combo. Helps me a lot, as I tend to use Cntrl-Alt to launch various programmes in Windows.All the new shortcuts work EXCEPT the most imp one for me--launching the FF plugin. I have set it to Cntrl-Shift-Z, tried changing it to something else. But nothing works. I checked in KeyConfig and the mapping is there
    extensions.zotero.keys.openZotero ---> Z
    But nothing happens when I press that key combo.Any suggestions?
  • Does it work if you are not focused on a text box? E.g. click on the page background and try the shortcut.

    I can reproduce this not working when inside a text box, which is probably because Ctrl+Shift+Z is mapped to "Redo". Even if possible, I'm not sure it would be a good idea to override that.
  • @Aurimas: I presume by text box you meant a box or text on some webpage as against the background of that webpage? Don't know whether your email mysteriously triggered something ;-), but now it works everywhere!
  • I meant that, for instance, if you click on the text box to enter a forum comment, the Ctrl+Shift+Z shortcut would not open/close the Zotero pane. If you move the focus away from the text box by clicking somewhere else on the page, the shortcut would work again.
  • You are right, of course. If my cursor is in the "Enter your comments" box, then the shortcut does not work. But earlier, it was simply not working anywhere. Now, no probs! why? don't know.
  • Hi!
    I just need you to help my memory: I know that it is possible, when you want to know in what folders is a reference, to hit a key to highlight the corresponding folders... You see what I mean?
    What is that that key?
  • http://www.zotero.org/support/tips_and_tricks

    Please start a new thread for any further questions, as this is unrelated to the topic (or find a relevant thread).
  • OK! excuse me... and thank's!
  • I have a question about customizing keyboard shortcuts, I hope this is an appropriate place to ask. I use Zutilo in Zotero for Firefox, but want to have shortcuts for some native Zotero commands that aren't included in Zutilo (e.g., "Move Item to Trash," "Remove Item from Collection"), as well as Zotfile commands for renaming attachments and extracting annotations. I currently have a workaround using AutoHotkey but it's not ideal, so I'd like to use Keyconfig or something similar to bind shortcuts to these commands.

    After perusing the forums, I'm a little unclear as to whether this is possible. That is, I'm not sure whether Keyconfig can bind shortcuts to any command (whether native to Zotero or part of a plugin like Zotfile), or whether Zutilo already includes all the commands for which it's possible to have shortcuts.

    I gather that if this is possible, it would involve looking at the Zotero code to get the relevant commands, then adding a new key in Keyconfig. I'm not quite sure how to go about this, so does anyone know if there are instructions available somewhere (i.e., describing what part of the Zotero code to copy and paste into the Keyconfig editor)?

    Thanks in advance for any help.
  • Hi Mark,

    it is possible to bind any command with KeyConfig. The context menus are partially defined in ZoteroPane.xul (https://github.com/zotero/zotero/blob/master/chrome/content/zotero/zoteroPane.xul) and partially dynamically generated in ZoteroPane.js (https://github.com/zotero/zotero/blob/master/chrome/content/zotero/zoteroPane.js). It's also useful to look at zotero.properties in chrome/locale/en-US to find the labels given to different strings used in the UI so you can find where in the code they are used and what commands are bound.

    For example, searching the xul file for trash, I see that the command "ZoteroPane_Local.deleteSelectedItems(true, true);" is bound. It's been a while since I have used KeyConfig but I think you want to replace ZoteroPane_Local with ZoteroPane.

    This should work in Zotero Standalone for the next year or more until Zotero switches from a Firefox engine to an Electron engine. When that happens, we will have to see what the plugin system is like and what it allows for keyboard customization.
  • Delete while in a collection will Remove Item from Collection. Shift+Delete will Move Item to Trash. Zotfile commands are harder. Easiest method would be to use the menu key (on Windows) and navigate the context menu.
  • @bwiernik: You're right, I can't believe I never figured out Delete and Shift+Delete before! And yes, I use the menu key/context menu as the basis for my AutoHotkey script for Zotfile commands, but it's imperfect because the makeup of the context menu changes depending on what's selected (obviously). Not the end of the world, though.

    @willshanks: Thanks, that's helpful! I'll play around with it and see what I can do.
Sign In or Register to comment.