Feature request: Magic citations as in papers
When I used Papers, I really loved the Magic Citations feature, where, in any application you could double-click the control key and it would bring up a search bar for your Papers database, providing the matches to that search. Then, when you selected the reference you wanted you could select how you wanted to insert the reference, as a bibtex citekey, as a full bibliographic entry or as a papers citation. It was a great feature.
https://github.com/retorquere/zotero-better-bibtex/wiki/Cite-as-you-Write
It requires a bit of set-up, but then works very smoothly.
http://pfw.mekentosj.com/kb/read-write-cite/magic-manuscripts
http://support.papersapp.com/mac/manual#http://support.mekentosj.com/kb/cite-write-your-manuscripts-and-essays-with-citations/magic-citations-on-papers-3-for-mac
@emilianoheyns Would it be possible to an option to copy a formatted bibliography for the items in a pre-selected CSL style to BBT CAYW feature?
{Kaplan:8RPYwYR+}
, what does that do?The use case for inserting a formatted citation is if you are working in, say, an email client or web browser and want to paste a reference to article without having to switch to Zotero, search, and use Quick Copy.
Papers can also Quicklook the PDF for an item from their citation picker. Does the BBT picker include the Show in My Library button? Could that be added (I will put this on GitHub)?
On a Mac, you can use Automator to make a keyboard shortcut to bring up the Zotero picker from any application.
In Automator, create a new Service. Set the service to receive "no input" in "any application". Then, tell it to "Run AppleScript" and enter this code:
on run
tell application "System Events"
set activeApps to name of application processes whose frontmost is true
set activeApp to item 1 of activeApps
set currentClipboard to the clipboard
set curlOutput to (do shell script "curl 'http://localhost:23119/better-bibtex/cayw?format=formatted-bibliography'")
set the clipboard to curlOutput
end tell
activate application activeApp
tell application "System Events"
keystroke "v" using {command down}
delay 1
set the clipboard to currentClipboard
end tell
end run
Save the workflow and open System Preferences. Choose Keyboard -> Shortcuts -> Services. Find your Zotero workflow and assign a keyboard shorcut to it.
open http://localhost:23119/better-bibtex/cayw\?format\=latex\&clipboard\=yes
and follow the rest of bwiernik instructions.
What do you think about this?
I should be able to set a global shortcut that launches the zotero picker and insert a citekey in any document. This would finally make zotero compatible with Scrivener, markdown editors, Google Drive, and so on...
I agree, the Paper 3 implementation with their "magic citation" (using universal citekey) is almost *perfect*. Following what they did can set standard for citation key that works when you collaborate with others even when using different citation manager. They published the implementation for the citekey part: https://github.com/cparnot/universal-citekey-js
A "universal picker" is definitely my top wanted feature.
That "universal citekeys" idea as carried by cparnot is, in other words, dead. I'm open to discuss another tack that addresses the problems mentioned in https://forums.zotero.org/discussion/comment/302067#Comment_302067, but someone else will a) have to take point, while b) still accepting I will have strong opinions on the matter.
There are different moving parts to solve the problem of editor agnostic citing:
- an interface to search and cite "at the OS level" (a global shortcut)
- some kind of citekey
- a way to transform the citekey in citation
- a way to transform citation back to citekey
I think the system should not be fixed to a given citekey systems, but the user should be able to choose what kind of citekey he wants to use. So the problem of the universal citekey can be solved after.
A lot of things are already done and other projects try to solve similar problems like https://retorque.re/zotero-better-bibtex/
Sadly, I really have no time for working on that right now. But I can spend a couple of hour for testing.
Their is millions of applications providing global shortcuts. Like MacPass that let you enter passwords in browser without having any plugin https://github.com/MacPass/MacPass/wiki/Autotype#global-autotype
It works by simply writing the text or search and replace. It works with almost any application without the need to a specific API.
It's a perfectly reasonable solution, but I don't see any way of doing this without completely separate code for each OS.
There is different ways of achieving this. You can know the last active windows. I believe you can also avoid taking the full focus (floating windows, like a virtual keyboard for example). In fact, it should work pretty much like a virtual keyboard (on-screen keyboard).
That requires some OS level code. But the custom part can certainly be pretty small, no? But I'm not a system programmer...