amebalabs / trex Goto Github PK
View Code? Open in Web Editor NEWCopy any text on your screen, stop retyping.
Home Page: https://trex.ameba.co
License: MIT License
Copy any text on your screen, stop retyping.
Home Page: https://trex.ameba.co
License: MIT License
Would it be possible to add an option and/or shortcut to OCR from clipboard?
from
brew tap melonamin/formulae
brew install trex
to brew install melonamin/formulae/trex
After #23 it should be easy to implement a custom Services menu, this will enable Right Click on File -> Service -> TRex OCR action
would it be possible to add some kind of visual indicator to indicate completion? maybe a full blown notification or add a checkmark to the menubar icon kinda thing
Version: TRex 1.3 (40)
OS X: Big Sur 11.4 (20F71)
Observation: When accessing TRex from the menu bar, there is an entry for "Preferences". Clicking on that entry does not appear to have any effect.
Expectation: I'd expect a preferences panel to appear. (I tried to access it because after rebooting my computer, I noticed that TRex wasn't in the menubar, and I'm hoping that the menu has an option to start TRex upon login.)
I actually don't find a way to reactivate the icon back to menu bar to change some settings. TRex is running but not accessible.
I have seen that the Version 1.7 is out at Github but no update at the AppStore?
Installing via brew install melonamin/formulae/trex
install version 1.0 not the last one
Trex is amazing! 🦖 🚀
My one gripe is not being able to use the command-line app to perform OCR on an image that's already on my disk.
e.g.
/Applications/TRex.app/Contents/MacOS/cli/trex --file /path/too/qrcode.png
My kludgy workaround for this is copying the image to the clipboard with impbcopy and then using the --clipboard
option. But that's pretty ugly.
impbcopy /path/to/qrcode.png
/Applications/TRex.app/Contents/MacOS/cli/trex --clipboard
This is the first time I tested the app. Basically not happens after clicking on Capture text
and selecting the text.
Here's the Console output:
default 19:58:20.857857-0300 tccd AUTHREQ_ATTRIBUTION: msgID=4293.2, attribution={responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, requesting={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, },
default 19:58:20.874119-0300 tccd AUTHREQ_SUBJECT: msgID=4293.2, subject=com.ameba.TRex,
default 19:58:20.876553-0300 tccd AUTHREQ_ATTRIBUTION: msgID=129.135, attribution={responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.WindowServer, pid=129, auid=88, euid=88, binary_path=/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/Resources/WindowServer}, },
default 19:58:20.889749-0300 tccd AUTHREQ_SUBJECT: msgID=129.135, subject=com.ameba.TRex,
default 19:58:20.919852-0300 tccd AUTHREQ_ATTRIBUTION: msgID=86.91, attribution={responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.mds, pid=86, auid=0, euid=0, binary_path=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds}, },
default 19:58:20.936407-0300 tccd AUTHREQ_SUBJECT: msgID=86.91, subject=com.ameba.TRex,
error 19:58:20.936732-0300 tccd Prompting policy for hardened runtime; service: kTCCServiceAddressBook requires entitlement com.apple.security.personal-information.addressbook but it is missing for responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.mds, pid=86, auid=0, euid=0, binary_path=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds},
default 19:58:20.938882-0300 tccd AUTHREQ_ATTRIBUTION: msgID=86.92, attribution={responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.mds, pid=86, auid=0, euid=0, binary_path=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds}, },
default 19:58:20.955853-0300 tccd AUTHREQ_SUBJECT: msgID=86.92, subject=com.ameba.TRex,
error 19:58:20.956183-0300 tccd Prompting policy for hardened runtime; service: kTCCServiceCalendar requires entitlement com.apple.security.personal-information.calendars but it is missing for responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.mds, pid=86, auid=0, euid=0, binary_path=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds},
default 19:58:20.958396-0300 tccd AUTHREQ_ATTRIBUTION: msgID=86.93, attribution={responsible={identifier=com.ameba.TRex, pid=3831, auid=501, euid=501, responsible_path=/Applications/TRex.app/Contents/MacOS/TRex, binary_path=/Applications/TRex.app/Contents/MacOS/TRex}, accessing={identifier=com.apple.screencapture, pid=4293, auid=501, euid=501, binary_path=/usr/sbin/screencapture}, requesting={identifier=com.apple.mds, pid=86, auid=0, euid=0, binary_path=/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds}, },
default 19:58:20.976679-0300 tccd AUTHREQ_SUBJECT: msgID=86.93, subject=com.ameba.TRex,
default 19:58:21.609958-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.611356-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.614852-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.615252-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.626404-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.626744-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.628822-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.629136-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.650121-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.650528-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.652594-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.652944-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.657807-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.658226-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.660468-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.660945-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.671890-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.672219-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.674392-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.674755-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.678956-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.679225-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.681315-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.681694-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.692218-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.692533-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.695060-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.695537-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.699604-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.699908-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
default 19:58:21.702162-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Delta\n)}";
}>> final result: (
) was cached: 1, cachedOnly: 0
default 19:58:21.702541-0300 TRex assetsForQuery: <query: com.apple.MobileAsset.LinguisticData, locO: 1, iO: 1, latO: 1, <filter: {
AssetLocale = "{(\n en\n)}";
AssetType = "{(\n Optional\n)}";
}>> final result: (
"Optional-en::dc4c467a0fffeac78ab819a94e98576bac0c3539.asset"
) was cached: 1, cachedOnly: 0
Hi! Thanks a lot for this great tool!
The new feature "Drag&Drop an image on the menu bar item to OCR it" made me dream of a solution where I could drag and drop a PDF file with multiple pages for OCR.
I'm loving the other work from amebalabs and thought i'd try TRex. Unfortunately 1.5.0 fails to launch on Big Sur. i'm asked if i want to open the app, and then nothing appears. I had a look in activity monitor and nothing is there. I downloaded the previous version and that works fine. Cheers!
Hi,
Hope you are doing well!
Is there a way you can harness the tesseract
(which is already installed on my system - it just needs to run using a shortcut or be available via the menubar like your app) command line application, which can provide OCR output for many other languages?
Thank you for your consideration!
Best,
Pramod
Hey, thanks for Trex, great tool :)
Ive been trying recently to use it also to transcript some code during screenshare session and it seems to me like OCR is not taking { ( [ ; ] ) }
characters into account.
Here is an example of code that you can test on - the image is very high resolution:
https://www.marclittlemore.com/images/posts/codesnap-screenshot.png
For some reason at the end, where we have
}
}
}
Trex translates it to M
, Ma
, Man
and some similar strings.
Is the issue connected to any specific type of font type?
I think if OCR is able to detect piece of code (ie. by statistical analysis of special characters, which are much more commonly used in code, than in normal language), it could be a huge improvement for developers.
Again, thanks for your work :)
Previously, the application would start in the background when the "Start at Login" option was enabled. However, after the Sequoia update, enabling this option causes the settings window to always appear automatically when the computer starts.
First thanks for creating this lovely tool, it has been really helpful in tasks such as scanning a QR code, and reading text. Would it be possible to have an option in which the text that is recognised is also searched over a search engine of choice? Presently, I am retrieving the recognised text from the clipboard and pasting it into a browser to search it.
This would be most helpful when reading text from shared screens in online meetings.
Thank you.
I selected some text from the first page of a kindle book and TRex yielded text including:
hot. A creek rushed behind our tents, and we used it to filter wa-
ter and cool the beer we'd snagged from the nearby ski town's os-
tentatiously wood-beamed liquor store.
It seems like TRex is hard wrapping lines and adding hyphenation that is not in the original text?
For privacy reasons, it seems best if I copied content to the clipboard myself instead of granting access to this (or any other) app to perform screen recording.
Although I could set a global hotkey to quickly have the clipboard content OCRd, there appears to be no menu item to do exactly that.
If there’s a concern about too many menu items, perhaps the existing Capture menu item could first check if there’s an image on the clipboard, and if (and only if) not, proceed to record the screen.
Is this on the roadmap? If not, would you be willing to consider? Thank you for this awesome tool!
I have tried all kinds of text, but my clipboard doesn´t store it.
A few issues:
Scanning URLs like github.com sends an error that says "Application can't be opened -50".
I just got TRex from the app store and enabled screen capture rights for it. When I do a screen capture by clicking TRex in the menubar > "Capture Text", nothing happens, no window pops up or such. Did I misunderstand sth regarding the usage or is there a bug? I'm on macOS 11.3.1, MacBook Pro (13 Zoll, 2019, 4 Thunderbolt 3).
Even if I tell it to update the cask, it will still be shown as outdated, not sure why.
==> Found outdated apps
Cask Current Latest A/U Result
1/1 trex v1.4.3 1.5.1 [OUTDATED]
When I first opened the App I uncheck many of the preferences and now I can't seem to get them back.
I tried the "trex://showPreferences" in Safari and I click Allow to open the app but nothing appears.
Checking with "Mission Control" doesn't show any windows that are hiding.
I tried deleting com.ameba.Trex files in ~/Library along with an uninstall and reinstall.
The CLI command does seem to trigger the app/mouse icon but I don't see anything show up in the clipboard.
I have version 1.5.0 from homebrew.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.