-
Notifications
You must be signed in to change notification settings - Fork 88
/
index.html
981 lines (980 loc) · 38.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
<!DOCTYPE html>
<html lang="en">
<head>
<title>NormCap</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="OCR-powered screenshot tool to capture text instead of images."
/>
<link rel="canonical" href="https://dynobo.github.io/normcap/" />
<link rel="stylesheet" href="pico-bootstrap-grid.min.css" />
<link rel="stylesheet" href="style.css" />
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="icon" type="image/png" sizes="192x192" href="favicon-192x192.png" />
<link rel="icon" type="image/png" sizes="96x96" href="favicon-96x96.png" />
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png" />
</head>
<body>
<nav class="container-fluid">
<ul>
<li id="logo">
<img src="img/normcap.svg" alt="logo" /><strong class="contrast"
>NormCap</strong
>
</li>
</ul>
<ul>
<li><a href="#features" class="contrast">Features</a></li>
<li><a href="#usage" class="contrast">Usage</a></li>
<li><a href="#support" class="contrast">Support</a></li>
<li><a href="#faqs" class="contrast">FAQs</a></li>
<li>
<a href="#python-package" class="contrast">Python package</a>
</li>
<li class="switch-light">
<a href="#" class="contrast" data-theme-switcher="light">🌣</a>
</li>
<li class="switch-dark">
<a href="#" class="contrast" data-theme-switcher="dark">⏾</a>
</li>
</ul>
</nav>
<main class="container">
<article id="download" class="grid">
<a
id="link-to-source"
href="https://github.com/dynobo/normcap"
target="_blank"
></a>
<div>
<div class="hgroup">
<h1>NormCap v0.4.1</h1>
<h2>
<a
href="https://en.wikipedia.org/wiki/Optical_character_recognition"
target="_blank"
>OCR</a
>-powered screenshot tool to capture text instead of images.
</h2>
</div>
<p>
Packages with the
<a
href="https://github.com/dynobo/normcap/blob/main/CHANGELOG"
target="_blank"
>latest changes</a
>
for your system:
</p>
<ul>
<li>
<a
href="https://github.com/dynobo/normcap/releases/download/v0.4.1/NormCap-0.4.1-x86_64-Windows.msi"
>Download for <strong>Windows</strong></a
>
<small>x86_64, ~120 MB</small>
<span data-tooltip="Run installer and start through start menu">🛈</span>
</li>
<li>
<a
href="https://github.com/dynobo/normcap/releases/download/v0.4.1/NormCap-0.4.1-x86_64.AppImage"
>Download for <strong>Linux</strong></a
>
<small>x86_64, ~90 MB</small>
<span data-tooltip="Make the file executable and run it">🛈</span>
</li>
<li>
<a
href="https://github.com/dynobo/normcap/releases/download/v0.4.1/NormCap-0.4.1-x86_64-macOS.dmg"
>Download for <strong>macOS</strong></a
>
<small>x86_64, ~80 MB</small>
<span
class="wide-tooltip"
data-tooltip="Unsigned application! You have to grant permissions on first start: 'System Preferences' → 'Security & Privacy' → 'General' → 'Open anyway'. (You might have to grant permissions to take screenshots, too.)"
>🛈</span
>
</li>
<li>
<a
href="https://github.com/dynobo/normcap/releases/download/v0.4.1/NormCap-0.4.1-arm64-macOS.dmg"
>Download for <strong>macOS (M1)</strong></a
>
<small>arm64, ~65 MB</small>
<span
class="wide-tooltip"
data-tooltip="Unsigned application! You have to grant permissions on first start: 'System Preferences' → 'Security & Privacy' → 'General' → 'Open anyway'. (You might have to grant permissions to take screenshots, too.)"
>🛈</span
>
</li>
</ul>
<p class="align-right">
<small
>... alternatively install from
<a href="https://apps.microsoft.com/store/detail/normcap/XPDLJNB4B6C2ZR"
>Microsoft Store</a
>,
<a href="https://flathub.org/apps/details/com.github.dynobo.normcap"
>FlatHub</a
>, <a href="https://aur.archlinux.org/packages/normcap">AUR</a> or
<a href="#python-package">PyPi</a>.</small
>
</p>
</div>
<div>
<div style="text-align: center; height: 100%;">
<a class="gif-link" href="img/normcap.gif" target="_blank"></a>
<a href="https://www.buymeacoffee.com/dynobo" target="_blank"
><img
src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"
alt="Buy Me A Coffee"
style="height: 40px !important; filter: grayscale() brightness(0.9); margin-top:5px;"
/></a>
</div>
</div>
</article>
<article id="features">
<div class="hgroup">
<h2>Features</h2>
<h3>Characteristics and functionalities that make NormCap interesting.</h3>
</div>
<div class="row features">
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-4">
<strong>Many languages</strong>
</div>
</div>
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-6">
<strong>Works offline</strong>
</div>
</div>
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-5">
<strong>Heuristic parsing</strong>
</div>
</div>
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-2">
<strong>Multi monitor</strong>
</div>
</div>
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-3">
<strong>Cross-platform</strong>
</div>
</div>
<div class="col-md-6 col-lg-6 col-xl-4">
<div class="feature feature-1">
<strong>Free & Open Source</strong>
</div>
</div>
</div>
</article>
<article id="usage">
<div class="hgroup">
<h2>Usage</h2>
<h3>A short guide for using NormCap and its most important features.</h3>
</div>
<h4>Quickstart</h4>
<ol>
<li>Start NormCap and wait until a pink border appears.</li>
<li>Select a region on screen with your mouse.</li>
<li>Wait for notification or pink tray icon.</li>
<li>Paste the recognized text from the clipboard anywhere you like.</li>
</ol>
<h4>Example use-cases</h4>
<ul>
<li>Extract text from screenshots you received via mail.</li>
<li>Copy error messages from non-selectable UI elements.</li>
<li>Retrieve information from photos.</li>
<li>Capture mail addresses from "crawler safe" images on the web.</li>
</ul>
<h4>User Interface</h4>
<ul>
<li>
The settings can be accessed via the <span class="primary">⚙</span>-icon in
the top right.
</li>
<li>
In the settings you can adjust the language(s) you are trying to recognize,
which is important for a good accuracy.
</li>
<li>
The icons <span class="primary">★</span> or
<span class="primary">☰</span> next to the selection-rectangle indicate the
active "capture mode" (see below).
</li>
<li>To abort a capture or quit NormCap press <code><esc></code></li>
</ul>
<h4>Capture Modes</h4>
<p>
The settings menu <span class="primary">⚙</span> allows switching between the
two capture modes: "parse" and "raw":
</p>
<ul>
<li>
<p><strong>"Raw"-Mode </strong></p>
<p>
Marked by the <span class="primary">☰</span> symbol, it outputs the
detected text just as detected by the OCR software. Keeps the text as
recognized, e.g. doesn't remove line-breaks.
</p>
</li>
<li>
<p><strong>"Parse"-Mode</strong> <small>(default)</small></p>
<p>
Indicated by the <span class="primary">★</span> symbol, it performs some
formatting of the output based on certain implemented rules, which can
take additional information like text position into account. In a first
step, every rule calculates a "score" to determine the likelihood of being
responsible for this type of text. In a second step, the rule which
achieved the highest "score" takes the necessary actions to "transform"
the input text according to its type. Those rules are currently
implemented:
</p>
<table>
<caption>
Heuristics performed in parse-mode.
</caption>
<thead>
<tr>
<th scope="col">
<strong>Rule name</strong>
</th>
<th scope="col"><strong>Score heuristics</strong></th>
<th scope="col"><strong>Transform</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Single line</strong></td>
<td>Only single line is detected</td>
<td>Trim unnecessary whitespace</td>
</tr>
<tr>
<td><strong>Multi line</strong></td>
<td>Multiple lines, but single paragraph</td>
<td>
Separate using line breaks and trim unnecessary whitespace in each
line
</td>
</tr>
<tr>
<td><strong>Paragraph</strong></td>
<td>Multiple blocks of lines or multiple paragraphs</td>
<td>
Join every paragraph into a single line, separate different
paragraphs by empty line
</td>
</tr>
<tr>
<td><strong>E-Mail</strong></td>
<td>Number of chars in email addresses vs. overall chars</td>
<td>Transform to a comma-separated list of email addresses</td>
</tr>
<tr>
<td><strong>URL</strong></td>
<td>Number of chars in URLs vs. overall chars</td>
<td>Transform to line-break separated URLs</td>
</tr>
</tbody>
</table>
</li>
</ul>
</article>
<article id="support">
<div class="hgroup">
<h2>Support</h2>
<h3>When things did not go as expected.</h3>
</div>
<h5>You need support with NormCap?</h5>
<ul>
<li>
For general questions use the
<a href="https://github.com/dynobo/normcap/discussions/categories/q-a"
>discussions</a
>
board.
</li>
<li>
If you have found a bug, open an
<a href="https://github.com/dynobo/normcap/issues">issue</a>.
</li>
<li>
Take a look at the <a href="#faqs">frequently asked questions</a> below.
</li>
</ul>
<h5>You want to support NormCap?</h5>
<ul>
<li>Tell your friends about NormCap.</li>
<li>
Provide
<a href="https://github.com/dynobo/normcap/discussions/categories/feedback"
>feedback</a
>
and
<a href="https://github.com/dynobo/normcap/discussions/categories/ideas"
>ideas</a
>.
</li>
<li>
If you know Python, support on
<a
href="https://github.com/dynobo/normcap/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22"
>open issues</a
>.
</li>
<li>
<a href="https://www.buymeacoffee.com/dynobo" target="_blank"
><img
src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png"
alt="Buy Me A Coffee"
style="height: 40px !important"
/></a>
</li>
</ul>
<h5>Not at all satisfied with NormCap?</h5>
<p>
Try an <a href="#faqs-alternatives">alternative application</a> and see if
they work better for you.
</p>
</article>
<article id="faqs">
<div class="hgroup">
<h2>Frequently Asked Questions</h2>
<h3>A knowledge base for common issues and additional information.</h3>
</div>
<h4>General</h4>
<details id="faqs-languages">
<summary>How can I add additional languages to NormCap?</summary>
<p>
The <strong>prebuild packages</strong> are shipped with support for English
only. To install additional languages, click the settings icon and in the
"Languages" section of the menu "add/remove...".
</p>
<p>
If you installed NormCap as <strong>Python package</strong>, refer to the
online documentation on how to install additional language for Tesseract on
your system.
</p>
</details>
<details id="faqs-improve-detection">
<summary>How can I improve the detection accuracy?</summary>
<p>
The quality of detections is mainly determined by
<a href="https://tesseract-ocr.github.io">Tesseract</a>, an open source
project for OCR mainly of <i>printed</i> text. NormCap builds upon this
great library and can influence the quality only a bit by preprocessing the
images regarding screen specific properties. <i>You</i>, the user, have much
more influence on the quality by paying attention to certain aspects:
</p>
<ol>
<li>
<b>Select the correct language</b> – To specify the correct
language(s) in the settings menu is the very important. But keep in mind:
selecting multiple languages at once slows down the recognition a bit.
</li>
<li>
<b>Avoid selecting decorations</b> – The text detection is very
sensible to elements <i>other</i> than text, for example borders, lines or
icons. If possible, do not select those:<br />
<img src="img/selections_1.png" alt="How to avoid borders" /><br />
</li>
<li>
<b>Avoid heterogeneous colors</b> – If the text you want to
recognize has different backgrounds, it can help to select those portions
of text separately:<br />
<img
src="img/selections_2.png"
alt="How to split sections with different colors in mulitple selection"
/>
</li>
<li>
<b>Zoom in</b> – If possible, enlarge the region you want to detect,
before selecting it with NormCap. This has a huge effect in situations,
where zooming in doesn't decrease the quality, e.g. zooming into webpages,
PDF documents or images which are not yet at their full resolution. It has
little effect, if enlarging decreases the quality, e.g. for images with
low resolutions.
</li>
<li>
<b>Select more text</b> – Sometimes Tesseract struggles with
recognizing text with only very few characters, like a single word. In
this case, selecting a larger portion of text can improve the accuracy.
</li>
<li>
<b>Try different language models</b> – The prebuild NormCap packages
are using
<a href="https://github.com/tesseract-ocr/tessdata_fast" target="_blank"
>tessdata-fast</a
>
models, which offer a very good accuracy to speed compromise. But you can
also try the slower and larger models from
<a href="https://github.com/tesseract-ocr/tessdata" target="_blank"
>tessdata</a
>
or
<a href="https://github.com/tesseract-ocr/tessdata_best" target="_blank"
>tessdata-best</a
>
instead.<br />
To find the directory in which you have to put the manually downloaded
models navigate to the "Language" section of NormCap's settings, then
click "add/remove" and finally "View tessdata folder in File Manager".
</li>
<li>
<b>Report examples</b> – If the results are still bad, please submit
a screenshot of the text you are trying to recognize
<a href="https://github.com/dynobo/normcap/issues">as an issue</a>.
Chances are small, but we might be able to improve something.
</li>
</ol>
</details>
<details id="faqs-cloud">
<summary>Is my image/text analyzed in The Cloud™?</summary>
<p>
No. The text recognition is performed offline using the OCR framework
<a href="https://github.com/tesseract-ocr/tesseract" target="_blank"
>Tesseract</a
>.
</p>
</details>
<details id="faqs-data-sent">
<summary>Is any other data send to the internet?</summary>
<p>
No telemetry data is collected and by default also no other data is sent
anywhere.
</p>
<p>
However, some (optional) features require accessing resources on the web and
therefore expose minimal information (like IP address) to the accessed
server:
</p>
<ul>
<li>
If you enable the check for updates on start, the application checks
NormCap's releases page on GitHub.
</li>
<li>
If you download additional languages, they are being fetched from GitHub,
too.
</li>
</ul>
</details>
<details id="faqs-shortcuts">
<summary>Can I start NormCap via a keyboard shortcut?</summary>
<p>
Yes, but you'll have to configure it on your own using your operating
system's tools:
</p>
<ul>
<li>
Linux:
<ul>
<li>
Ubuntu/Gnome:
<a
href="https://help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html"
>Set Keyboard Shortcuts</a
>
</li>
<li>
Manjaro/Xfce, Plasma:
<a href="https://wiki.manjaro.org/index.php?title=Keyboard_Shortcuts"
>Keyboard Shortcuts</a
>
</li>
</ul>
</li>
<li>
macOS:
<a href="https://www.wikihow.com/Set-a-Keyboard-Shortcut-to-Open-Mac-Apps"
>Set a keyboard shortcut to open Mac apps</a
>
</li>
<li>
Windows 10:
<a
href="https://www.cnet.com/tech/computing/open-programs-with-keyboard-shortcuts-in-windows-10/"
>Open programs with keyboard shortcuts in Windows 10</a
>
</li>
</ul>
<p>
Ask your preferred search engine for support or different ways to do this.
</p>
</details>
<details id="faqs-windows-file-size">
<summary>Why is the Windows-Installer's file size so large?</summary>
<p>
NormCap's MSI installer is much larger than the ones for Linux and macOS
because the included
<a href="https://tesseract-ocr.github.io/">Tesseract</a> binaries are
larger.
</p>
<p>
NormCap used to include a set of smaller binaries, which resulted in more
consistent installer file sizes for all operating systems. Unfortunately,
they seemed to lack some dependencies and lead to issues on some Windows
systems. Hopefully, the larger binaries will fix this issue. This decision
is not set in stone, so please
<a href="https://github.com/dynobo/normcap/discussions"
>feel free to leave some feedback</a
>
regarding this topic!
</p>
</details>
<details id="faqs-alternatives">
<summary>Are there alternatives to NormCap?</summary>
<p>
Some applications offer similar features like NormCap and might be a good or
even better alternative for you: It completely depends on your use case and
requirements. Some similar open-source Projects are:
</p>
<ul>
<li>
<a href="https://github.com/RajSolai/TextSnatcher" target="_blank"
>TextSnatcher</a
>
</li>
<li>
<a href="https://getgreenshot.org" target="_blank">GreenShot</a>
</li>
<li>
<a href="https://github.com/ianzhao05/textshot" target="_blank"
>TextShot</a
>
</li>
<li>
<a href="https://github.com/manisandro/gImageReader" target="_blank"
>gImageReader</a
>
</li>
<li>
<a href="https://sourceforge.net/projects/capture2text" target="_blank"
>Capture2Text</a
>
</li>
<li>
<a href="https://github.com/TenderOwl/Frog" target="_blank">Frog</a>
</li>
<li>
<a href="https://github.com/RhetTbull/textinator" target="_blank"
>Textinator</a
>
</li>
<li>
<a href="https://github.com/TheJoeFin/Text-Grab" target="_blank"
>Text-Grab</a
>
</li>
<li>
<a href="https://github.com/TheJoeFin/Text-Grab" target="_blank"
>dpScreenOCR</a
>
</li>
</ul>
</details>
<h4>Troubleshooting</h4>
<details id="faqs-debug">
<summary>How to get debug information?</summary>
<p>
You can start NormCap from the command line with the verbosity option to get
an idea about what it is doing. The command to run depends on the OS and
install method.
</p>
<ul>
<li>
<strong>With Python package:</strong><br />
<p>Run: <code>normcap -v debug</code></p>
</li>
<li>
<strong>On Windows (MSI):</strong><br />
<p>
Run:
<code>%LOCALAPPDATA%\Programs\dynobo\NormCap\NormCap.exe -v debug</code>
</p>
</li>
<li>
<strong>On macOS (DMG):</strong>
<p>
Run:
<code>/Applications/NormCap.app/Contents/MacOS/NormCap -v debug</code>
</p>
</li>
<li>
<strong>On Linux (AppImage):</strong>
<p>Run: <code>./NormCap-{version}-x86_64.AppImage -v debug</code></p>
</li>
<li>
<strong>On Linux (FlatPak):</strong>
<p>
Run:
<code
>flatpak run --command=normcap com.github.dynobo.normcap -v
debug</code
>
</p>
</li>
<li>
<strong>On Linux (AUR):</strong>
<p>Run: <code>normcap -v debug</code></p>
</li>
</ul>
</details>
<details id="faqs-is-not-starting">
<summary>NormCap is not starting</summary>
<p>
Please try to take a look at the
<a href="#faqs-debug">debug information</a>. It might provide enough
information for you to solve the issue for yourself. If it doesn't help you,
don't hesitate to
<a href="https://github.com/dynobo/normcap/issues">report</a> your problem
description together with debug information.
</p>
</details>
<details id="faqs-doesnt-show-system-tray">
<summary>[Linux] Normcap does not show up in system tray</summary>
<p>
Is your display environment Gnome Shell? Then you probably need to install a
<a href="https://extensions.gnome.org/" target="_blank"
>Gnome Shell extension</a
>
to support showing applications in the top bar, e.g.:
</p>
<ul>
<li>
<a
href="https://extensions.gnome.org/extension/615/appindicator-support/"
target="_blank"
>AppIndicator Support</a
>
</li>
<li>
<a
href="https://extensions.gnome.org/extension/1301/ubuntu-appindicators/"
target="_blank"
>Ubuntu AppIndicators</a
>
</li>
<li>
<a
href="https://extensions.gnome.org/extension/1503/tray-icons/"
target="_blank"
>Tray Icons</a
>
</li>
<li>
<a
href="https://extensions.gnome.org/extension/2890/tray-icons-reloaded/"
target="_blank"
>Tray Icons: Reloaded</a
>
</li>
</ul>
</details>
<details id="faqs-doesnt-show-notification">
<summary>[Linux] NormCap doesn't show a notification after capture</summary>
<p>
NormCap's notifications depend on the system tray functionality. If you
start NormCap, but its Icon doesn't appear in the system tray, proceed like
in the question above.
</p>
</details>
<details id="faqs-couldnt-load-platform-plugin">
<summary>[Linux] Error: Could not load the Qt platform plugin</summary>
<p>In case you get an output like this...</p>
<pre><code>$ normcap
QtFatalMsg - This application failed to start because no Qt platform plugin
could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen,
vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.</code></pre>
<p>
... the chances are, some system packages are missing or outdated. Please
ensure you have the following packages installed:
</p>
<ol>
<li><code>qt6-base</code></li>
<li><code>qt6-wayland</code> (only when using Wayland)</li>
<li><code>libxcb</code> (only when using X.Org)</li>
</ol>
<p>
<small
>Those are the package names on Arch Linux, other Linux distributions
might call have named them differently.</small
>
</p>
</details>
<details id="faqs-shortcut-doesnt-copy-to-clipboard">
<summary>
[Linux] NormCap doesn't copy the results to clipboard when launched via
shortcut
</summary>
<p>
This is behavior
<a href="https://github.com/dynobo/normcap/issues/422"
>was observed only on KDE + Wayland (#422)</a
>
so far, and only when NormCap was started via a keyboard shortcut / key
binding. The root cause is still unknown, if you have any information or
ideas, please comment in the ticket above.
</p>
<p>
Strangely, a workaround seems to be to configure the keyboard shortcut via
"System Settings" → "Shortcuts" → "Add command" and configure the command in
a way, that it pipes the output to somewhere, e.g. /dev/null:
</p>
<pre><code>normcap 2>&1 | tee /dev/null</code></pre>
</details>
<details id="faqs-appimage-needs-fuse">
<summary>[Linux, AppImage] Error: AppImages require FUSE to run</summary>
<p>
This is not a NormCap issue but a requirement for AppImages. You need to
make sure, that the <code>FUSE</code> library is installed on your system.
E.g. on Ubuntu 22.04 you need to run <code>sudo apt install libfuse2</code>.
See
<a
href="https://techpiezo.com/linux/error-appimages-require-fuse-to-run-in-ubuntu-22-04/"
>
this blog post for details</a
>.
</p>
</details>
<details id="faqs-error-libcrypt">
<summary>
[Linux, AppImage] Error while loading shared libraries: libcrypt.so.1
</summary>
<p>
The
<a
href="https://gregoryszorc.com/docs/python-build-standalone/main/running.html#runtime-requirements"
>application used to package the AppImage</a
>
has a number of runtime requirements. One of those requirements is
<code>libcrypt.so.1</code>, which should be provided by most modern Linux
distributions, as it is mandated as part of the Linux Standard Base Core
Specification. However, some distributions don't include
<code>libcrypt.so.1</code> as part of the base OS configuration. This can
usually be fixed by installing the <code>libxcrypt-compat</code> package.
</p>
</details>
<details id="faqs-macos-empty-desktop">
<summary>[macOS] When NormCap is started, an empty desktop shows up</summary>
<p>
This issue usually occurs on the after installing NormCap, either for the
first time or after an update.
</p>
<p>
This is a known issue related to macOS's permissions settings: If NormCap
doesn't have the system's permission to take a screenshot, an empty desktop
will be shown.<br />
<small
>(To be precise: NormCap doesn't <em>know</em> that it lacks permissions,
tries to take a screenshot nevertheless, which results in a screenshot of
the empty desktop.)</small
>
</p>
<p>Steps to solve this:</p>
<ol>
<li>Close NormCap, if it is running.</li>
<li>
Navigate to "System Preferences" → "Security & Privacy" → "Privacy" →
"Screen Recording" → "Click unlock".
</li>
<li>
Do you already see "NormCap" on the right side? If yes, "remove" [ – ] it.
<strong>Un-ticking the checkbox is not enough!</strong>
</li>
<li>Click "add" [+] → "Applications" → "NormCap".</li>
<li>
Confirm that you see NormCap on the right side with a checkmark in front
of it.
</li>
<li>Start NormCap, it should work now.</li>
<li>
You might need to repeat those steps after installing a new version of
NormCap.
</li>
</ol>
<p>
Hopefully, this cumbersome user experience can be improved in a future
release.
</p>
</details>
<h4>Development</h4>
<details id="faqs-no-such-file">
<summary>
"No such file or directory" error when running <code>briefcase build</code>
</summary>
<p>
To verify, if this is the issue you are facing, run the docker image
interactively and try to run the <code>linuxdeploy-*.AppImage</code> file
there:
</p>
<pre><code>$ docker run -it \
--volume /home/<USER>/<PROJECT PATH>/normcap/linux:/app:z \
--volume /home/<USER>/.briefcase:/home/brutus/.briefcase:z \
--env VERSION=0.2.0 briefcase/eu.dynobo.normcap:py3.9 \
/bin/bash
$ /home/brutus/.briefcase/tools/linuxdeploy-x86_64.AppImage</code></pre>
<p>
If that results in a `No such file or directory` error, according to
<a
href="https://github.com/AppImage/AppImageKit/issues/1027#issuecomment-641601097"
target="_blank"
>this issue</a
>
and
<a href="https://github.com/AppImage/AppImageKit/issues/828" target="_blank"
>this one</a
>
a workaround is to correct the "magic" bytes of the AppImage. This worked
for me:
</p>
<pre><code>sed '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' -i linuxdeploy-x86_64.AppImage</code></pre>
</details>
</article>
<article id="python-package">
<div class="hgroup">
<h2>Python package</h2>
<h3>
An advanced installation method as <em>alternative</em> to the prebuild
packages.
</h3>
</div>
<details>
<summary>Comparison to prebuild packages</summary>
<div class="row comparison">
<div class="col-sm-6">
<p>Prebuild:</p>
<ul>
<li>Easier to install</li>
<li>Better system integration</li>
<li>No admin rights required</li>
</ul>
</div>
<div class="col-sm-6">
<p>Python package:</p>
<ul>
<li>Slightly faster startup</li>
<li>Requires an installation of Python >=3.9</li>
<li>
<span data-html="true" data-tooltip="Depends on your system setup"
>Might</span
>
need less disk space
</li>
</ul>
</div>
</div>
</details>
<details id="python-package-install-on-linux">
<summary>Install on Linux</summary>
<ol>
<li>
Install dependencies: <br />
<small
>Note: <code>wl-clipboard</code> can be omitted on X11 based
systems</small
>
<br />
<br />
<ul>
<li>
Ubuntu/Debian:
<pre><code>sudo apt install build-essential tesseract-ocr tesseract-ocr-eng
libtesseract-dev libleptonica-dev wl-clipboard</code></pre>
</li>
<li>
Arch:
<pre><code>sudo pacman -S tesseract tesseract-data-eng wl-clipboard</code></pre>
</li>
<li>
Fedora:
<pre><code>sudo dnf install tesseract wl-clipboard</code></pre>
</li>
<li>
openSUSE:
<pre><code>sudo zypper install python3-devel tesseract-ocr
tesseract-ocr-devel wl-clipboard</code></pre>
</li>
</ul>
</li>
<li>
Install NormCap:
<pre><code>pip install normcap</code></pre>
</li>
<li>
Run:
<pre><code>./normcap</code></pre>
</li>
</ol>
</details>
<details id="python-package-install-on-macos">
<summary>Install on macOS</summary>
<ol>
<li>
Install dependencies:
<pre><code>brew install tesseract tesseract-lang</code></pre>
</li>
<li>
Install NormCap:
<pre><code>pip install normcap</code></pre>
</li>
<li>
Run:
<pre><code>./normcap</code></pre>
</li>
</ol>
</details>
<details id="python-package-install-on-windows">
<summary>Install on Windows</summary>
<div>
<ol>
<li>
Install "Tesseract 5", e.g. by using the
<a href="https://github.com/UB-Mannheim/tesseract/wiki" target="_blank"
>installer provided by UB Mannheim</a
>.
</li>
<li>
Set the environment variable TESSDATA_PREFIX to Tesseract's data folder,
e.g.:
<pre><code>setx TESSDATA_PREFIX "C:\Program Files\Tesseract-OCR\tessdata"</code></pre>
</li>
<li>
Append Tesseract's location to the environment variable "Path", e.g.:
<pre><code>setx Path "%Path%;C:\Program Files\Tesseract-OCR"</code></pre>
</li>
<li>
Make sure to close and reopen your current terminal window to apply the
new variables. Test it by running:
<pre><code>tesseract --list-langs</code></pre>
</li>
<li>
Install NormCap:
<pre><code>pip install normcap</code></pre>
</li>
<li>
Run:
<pre><code>./normcap</code></pre>
</li>
</ol>
</div>
</details>
</article>
</main>
<footer class="container-fluid">
<small
>Built with <span class="primary">♥</span> and
<a href="https://picocss.com" class="secondary" target="_blank">Pico</a>
</small>
</footer>
<script src="script.js"></script>
</body>
</html>