summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tischer <simon@t-ticher.de>2021-11-14 10:09:12 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-11-14 15:17:02 +0000
commit60eb60aa750f12368f51da9604d8f04674b0028d (patch)
tree6d74fb1e6455e060abd601a9ac2acec0df8fbf0a
parent1b02c4c6ab57d6f211292f6ee4ab7a75e0420793 (diff)
add e-fprint-gui to e
Summary: add e-fprint-gui to e e-fprint-gui is a frontend for fprint (Fingerprint Config) you can enroll/delete/verfiy fingerprints. http://www.enlightenment.org/ss/display.php?image=e-6180733de57892.39469053.jpg Reviewers: devilhorns, raster, bu5hm4n, morlenxus Subscribers: cedric, zmike Tags: #enlightenment-git Differential Revision: https://phab.enlightenment.org/D12305
-rw-r--r--src/bin/tools/fprint/AUTHORS2
-rw-r--r--src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop11
-rw-r--r--src/bin/tools/fprint/data/desktop/enlightenment_fprint.pngbin0 -> 16360 bytes
-rw-r--r--src/bin/tools/fprint/data/desktop/meson.build6
-rw-r--r--src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg204
-rw-r--r--src/bin/tools/fprint/data/meson.build2
-rw-r--r--src/bin/tools/fprint/data/themes/enlightenment_fprint.edc855
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-140.pngbin0 -> 30749 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-280.pngbin0 -> 38249 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_0-560.pngbin0 -> 55990 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-140.pngbin0 -> 8620 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-280.pngbin0 -> 9898 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1-560.pngbin0 -> 13220 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-140.pngbin0 -> 7480 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-280.pngbin0 -> 8391 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_1_failed-560.pngbin0 -> 10950 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-140.pngbin0 -> 12136 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-280.pngbin0 -> 14457 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2-560.pngbin0 -> 20363 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-140.pngbin0 -> 8571 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-280.pngbin0 -> 10011 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_2_failed-560.pngbin0 -> 13538 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-140.pngbin0 -> 16424 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-280.pngbin0 -> 20272 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3-560.pngbin0 -> 28906 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-140.pngbin0 -> 9629 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-280.pngbin0 -> 11519 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_3_failed-560.pngbin0 -> 15560 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-140.pngbin0 -> 21993 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-280.pngbin0 -> 27727 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4-560.pngbin0 -> 40100 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-140.pngbin0 -> 11064 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-280.pngbin0 -> 13567 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_4_failed-560.pngbin0 -> 18638 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-140.pngbin0 -> 31706 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-280.pngbin0 -> 39972 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5-560.pngbin0 -> 58759 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-140.pngbin0 -> 14376 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-280.pngbin0 -> 17252 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/1_5_failed-560.pngbin0 -> 24535 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.pngbin0 -> 1511 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.pngbin0 -> 3688 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.pngbin0 -> 7956 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/hands.pngbin0 -> 61285 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/left_hand.pngbin0 -> 35553 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_0.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_1.svg120
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_2.svg146
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_3.svg172
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_4.svg198
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg107
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_5.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg87
-rw-r--r--src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg204
-rw-r--r--src/bin/tools/fprint/data/themes/images/right_hand.pngbin0 -> 35212 bytes
-rw-r--r--src/bin/tools/fprint/data/themes/meson.build12
-rw-r--r--src/bin/tools/fprint/meson.build112
-rw-r--r--src/bin/tools/fprint/src/device.xml644
-rw-r--r--src/bin/tools/fprint/src/enlightenment_fprint.c1312
-rw-r--r--src/bin/tools/fprint/src/manager.xml47
-rw-r--r--src/bin/tools/fprint/src/meson.build27
-rw-r--r--src/bin/tools/meson.build1
65 files changed, 4998 insertions, 0 deletions
diff --git a/src/bin/tools/fprint/AUTHORS b/src/bin/tools/fprint/AUTHORS
new file mode 100644
index 000000000..905be8dc8
--- /dev/null
+++ b/src/bin/tools/fprint/AUTHORS
@@ -0,0 +1,2 @@
1Simon "jf_simon" Tischer simon@t-tischer.de
2Marcel "bu5hm4n" Hollerbach
diff --git a/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop
new file mode 100644
index 000000000..d992310ab
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.desktop
@@ -0,0 +1,11 @@
1[Desktop Entry]
2Encoding=UTF-8
3Type=Application
4Name=Fingerprint Password Settings
5Name[de]=Fingerprint Passwort Einstellungen
6Icon=enlightenment_fprint
7Exec=enlightenment_fprint
8Comment=Tool to set up or modify fingerprint authentication
9GenericName=GUI for Fingerprint Authentication
10Categories=Settings;DesktopSettings;
11StartupWMClass=enlightenment_fprint
diff --git a/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png
new file mode 100644
index 000000000..dbe7377e5
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/enlightenment_fprint.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/desktop/meson.build b/src/bin/tools/fprint/data/desktop/meson.build
new file mode 100644
index 000000000..6078f8314
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/meson.build
@@ -0,0 +1,6 @@
1install_data('enlightenment_fprint.desktop',
2 install_dir: join_paths(dir_data, 'applications')
3 )
4install_data('enlightenment_fprint.png',
5 install_dir: join_paths(dir_data, 'icons/hicolor/128x128/apps')
6 )
diff --git a/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg b/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg
new file mode 100644
index 000000000..e85537d21
--- /dev/null
+++ b/src/bin/tools/fprint/data/desktop/orig/enlightenment_fprint.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="e-fprint-gui.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="2560"
56 inkscape:window-height="1377"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-224.63902"
61 inkscape:cy="-27.03533"
62 inkscape:window-x="0"
63 inkscape:window-y="0"
64 inkscape:window-maximized="1"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#d6a16a;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#ddc8a4;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#a0a0a0;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#b88c88;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#eb9422;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#a0a0a0;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#b88c88;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#eb9422;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/meson.build b/src/bin/tools/fprint/data/meson.build
new file mode 100644
index 000000000..4155fc3ef
--- /dev/null
+++ b/src/bin/tools/fprint/data/meson.build
@@ -0,0 +1,2 @@
1subdir('desktop')
2subdir('themes')
diff --git a/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc b/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc
new file mode 100644
index 000000000..ea7f9fb46
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/enlightenment_fprint.edc
@@ -0,0 +1,855 @@
1images {
2 image: "hands.png" COMP;
3 image: "left_hand.png" COMP;
4 image: "right_hand.png" COMP;
5image: "fingerprint_icon-160.png" COMP;
6 set { name: "fingerprint_icon";
7 image { image: "fingerprint_icon-160.png" COMP; size: 81 81 16000 16000; }
8 image { image: "fingerprint_icon-080.png" COMP; size: 41 41 80 80; }
9 image { image: "fingerprint_icon-040.png" COMP; size: 0 0 40 40; }
10 }
11#define IM140(_name) \
12 set { name: _name; \
13 image { image: _name"-560.png" COMP; size: 281 281 16000 16000; } \
14 image { image: _name"-280.png" COMP; size: 141 141 280 280; } \
15 image { image: _name"-140.png" COMP; size: 0 0 140 140; } \
16 }
17 IM140("1_0")
18 IM140("1_1")
19 IM140("1_1_failed")
20 IM140("1_2")
21 IM140("1_2_failed")
22 IM140("1_3")
23 IM140("1_3_failed")
24 IM140("1_4")
25 IM140("1_4_failed")
26 IM140("1_5")
27 IM140("1_5_failed")
28}
29
30collections {
31 base_scale: 1.0;
32 group { "hands";
33 parts {
34 // LEFT HAND
35 image { "hands";
36 scale: 1;
37 desc { "default";
38 min: 650 400;
39 max: 650 400;
40 image.normal: "hands.png";
41 color_class: ":fg";
42 }
43 }
44 image { "left-little-finger";
45 scale: 1;
46 desc { "default";
47 min: 40 40;
48 max: 40 40;
49 image.normal: "fingerprint_icon";
50 rel.to: "hands";
51 rel1.relative: (35/609) (125/375);
52 rel2.relative: (35/609) (125/375);
53 color_class: ":bg-light";
54 }
55 desc { "enrolled";
56 inherit: "default";
57 color_class: ":success";
58 }
59 }
60 swallow {"swallow_left-little-finger";
61 desc { "default";
62 rel.to: "left-little-finger";
63 }
64 }
65 image { "left-ring-finger";
66 scale: 1;
67 desc { "default";
68 min: 40 40;
69 max: 40 40;
70 image.normal: "fingerprint_icon";
71 rel.to: "hands";
72 rel1.relative: (92/609) (82/375);
73 rel2.relative: (92/609) (82/375);
74 color_class: ":bg-light";
75 }
76 desc { "enrolled";
77 inherit: "default";
78 color_class: ":success";
79 }
80 }
81 swallow {"swallow_left-ring-finger";
82 desc { "default";
83 rel.to: "left-ring-finger";
84 }
85 }
86
87 image { "left-middle-finger";
88 scale: 1;
89 desc { "default";
90 min: 40 40;
91 max: 40 40;
92 image.normal: "fingerprint_icon";
93 rel.to: "hands";
94 rel1.relative: (150/609) (51/375);
95 rel2.relative: (150/609) (51/375);
96 color_class: ":bg-light";
97 }
98 desc { "enrolled";
99 inherit: "default";
100 color_class: ":success";
101 }
102 }
103 swallow {"swallow_left-middle-finger";
104 desc { "default";
105 rel.to: "left-middle-finger";
106 }
107 }
108
109 image { "left-index-finger";
110 scale: 1;
111 desc { "default";
112 min: 40 40;
113 max: 40 40;
114 image.normal: "fingerprint_icon";
115 rel.to: "hands";
116 rel1.relative: (208/609) (75/375);
117 rel2.relative: (208/609) (75/375);
118 color_class: ":bg-light";
119 }
120 desc { "enrolled";
121 inherit: "default";
122 color_class: ":success";
123 }
124 }
125 swallow {"swallow_left-index-finger";
126 desc { "default";
127 rel.to: "left-index-finger";
128 }
129 }
130
131 image { "left-thumb";
132 scale: 1;
133 desc { "default";
134 min: 40 40;
135 max: 40 40;
136 image.normal: "fingerprint_icon";
137 rel.to: "hands";
138 rel1.relative: (265/609) (209/375);
139 rel2.relative: (265/609) (209/375);
140 color_class: ":bg-light";
141 }
142 desc { "enrolled";
143 inherit: "default";
144 color_class: ":success";
145 }
146 }
147 swallow {"swallow_left-thumb";
148 desc { "default";
149 rel.to: "left-thumb";
150 }
151 }
152
153 // RIGHT HAND
154 image { "right-little-finger";
155 scale: 1;
156 desc { "default";
157 min: 40 40;
158 max: 40 40;
159 image.normal: "fingerprint_icon";
160 rel.to: "hands";
161 rel1.relative: (341/609) (209/375);
162 rel2.relative: (341/609) (209/375);
163 color_class: ":bg-light";
164 }
165 desc { "enrolled";
166 inherit: "default";
167 color_class: ":success";
168 }
169 }
170 swallow {"swallow_right-little-finger";
171 desc { "default";
172 rel.to: "right-little-finger";
173 }
174 }
175 image { "right-ring-finger";
176 scale: 1;
177 desc { "default";
178 min: 40 40;
179 max: 40 40;
180 image.normal: "fingerprint_icon";
181 rel.to: "hands";
182 rel1.relative: (399/609) (75/375);
183 rel2.relative: (399/609) (75/375);
184 color_class: ":bg-light";
185 }
186 desc { "enrolled";
187 inherit: "default";
188 color_class: ":success";
189 }
190 }
191 swallow {"swallow_right-ring-finger";
192 desc { "default";
193 rel.to: "right-ring-finger";
194 }
195 }
196
197 image { "right-middle-finger";
198 scale: 1;
199 desc { "default";
200 min: 40 40;
201 max: 40 40;
202 image.normal: "fingerprint_icon";
203 rel.to: "hands";
204 rel1.relative: (458/609) (51/375);
205 rel2.relative: (458/609) (51/375);
206 color_class: ":bg-light";
207 }
208 desc { "enrolled";
209 inherit: "default";
210 color_class: ":success";
211 }
212 }
213 swallow {"swallow_right-middle-finger";
214 desc { "default";
215 rel.to: "right-middle-finger";
216 }
217 }
218
219 image { "right-index-finger";
220 scale: 1;
221 desc { "default";
222 min: 40 40;
223 max: 40 40;
224 image.normal: "fingerprint_icon";
225 rel.to: "hands";
226 rel1.relative: (515/609) (82/375);
227 rel2.relative: (515/609) (82/375);
228 color_class: ":bg-light";
229 }
230 desc { "enrolled";
231 inherit: "default";
232 color_class: ":success";
233 }
234 }
235 swallow {"swallow_right-index-finger";
236 desc { "default";
237 rel.to: "right-index-finger";
238 }
239 }
240
241 image { "right-thumb";
242 scale: 1;
243 desc { "default";
244 min: 40 40;
245 max: 40 40;
246 image.normal: "fingerprint_icon";
247 rel.to: "hands";
248 rel1.relative: (572/609) (125/375);
249 rel2.relative: (572/609) (125/375);
250 color_class: ":bg-light";
251 }
252 desc { "enrolled";
253 inherit: "default";
254 color_class: ":success";
255 }
256 }
257 swallow {"swallow_right-thumb";
258 desc { "default";
259 rel.to: "right-thumb";
260 }
261 }
262 }
263 programs {
264 program { signal: "enrolled_finger"; source: "*";
265 script {
266 set_state(get_part_id(src), "enrolled", 0.0);
267 }
268 }
269 program { signal: "reset_finger"; source: "reset_finger";
270 action: STATE_SET "default" 0.0;
271 transition: LINEAR 0.2;
272 target: "left-little-finger";
273 target: "left-ring-finger";
274 target: "left-middle-finger";
275 target: "left-index-finger";
276 target: "left-thumb";
277 target: "right-little-finger";
278 target: "right-ring-finger";
279 target: "right-middle-finger";
280 target: "right-index-finger";
281 target: "right-thumb";
282 }
283 }
284 }
285
286 group { "right_hand";
287 parts {
288 image { "right_hand";
289 scale: 1;
290 desc { "default";
291 min: 650 400;
292 max: 650 400;
293 image.normal: "right_hand.png";
294 color_class: ":fg";
295 }
296 }
297 image { "right-little-finger";
298 scale: 1;
299 desc { "default";
300 min: 40 40;
301 max: 40 40;
302 image.normal: "fingerprint_icon";
303 rel.to: "right_hand";
304 rel1.relative: (422/609) (125/375);
305 rel2.relative: (422/609) (125/375);
306 color_class: ":bg-light";
307 }
308 desc { "enrolled";
309 inherit: "default";
310 color_class: ":success";
311 }
312 }
313 swallow {"swallow_right-little-finger";
314 desc { "default";
315 rel.to: "right-little-finger";
316 }
317 }
318
319 image { "right-ring-finger";
320 scale: 1;
321 desc { "default";
322 min: 40 40;
323 max: 40 40;
324 image.normal: "fingerprint_icon";
325 rel.to: "right_hand";
326 rel1.relative: (365/609) (82/375);
327 rel2.relative: (365/609) (82/375);
328 color_class: ":bg-light";
329 }
330 desc { "enrolled";
331 inherit: "default";
332 color_class: ":success";
333 }
334 }
335 swallow {"swallow_right-ring-finger";
336 desc { "default";
337 rel.to: "right-ring-finger";
338 }
339 }
340
341 image { "right-middle-finger";
342 scale: 1;
343 desc { "default";
344 min: 40 40;
345 max: 40 40;
346 image.normal: "fingerprint_icon";
347 rel.to: "right_hand";
348 rel1.relative: (307/609) (51/375);
349 rel2.relative: (307/609) (51/375);
350 color_class: ":bg-light";
351 }
352 desc { "enrolled";
353 inherit: "default";
354 color_class: ":success";
355 }
356 }
357 swallow {"swallow_right-middle-finger";
358 desc { "default";
359 rel.to: "right-middle-finger";
360 }
361 }
362
363 image { "right-index-finger";
364 scale: 1;
365 desc { "default";
366 min: 40 40;
367 max: 40 40;
368 image.normal: "fingerprint_icon";
369 rel.to: "right_hand";
370 rel1.relative: (250/609) (75/375);
371 rel2.relative: (250/609) (75/375);
372 color_class: ":bg-light";
373 }
374 desc { "enrolled";
375 inherit: "default";
376 color_class: ":success";
377 }
378 }
379 swallow {"swallow_right-index-finger";
380 desc { "default";
381 rel.to: "right-index-finger";
382 }
383 }
384
385 image { "right-thumb";
386 scale: 1;
387 desc { "default";
388 min: 40 40;
389 max: 40 40;
390 image.normal: "fingerprint_icon";
391 rel.to: "right_hand";
392 rel1.relative: (192/609) (209/375);
393 rel2.relative: (192/609) (209/375);
394 color_class: ":bg-light";
395 }
396 desc { "enrolled";
397 inherit: "default";
398 color_class: ":success";
399 }
400 }
401 swallow {"swallow_right-thumb";
402 desc { "default";
403 rel.to: "right-thumb";
404 }
405 }
406
407 // LIST SWALLOW
408 swallow {"swallow_hand_switch";
409 scale: 1;
410 desc { "default";
411 min: 40 40;
412 max: 40 40;
413 rel1.to_y: "right_hand";
414 rel1.relative: 0.6 0.0;
415 }
416 }
417 }
418 programs {
419 program { signal: "enrolled_finger"; source: "*";
420 script {
421 set_state(get_part_id(src), "enrolled", 0.0);
422 }
423 }
424 program { signal: "reset_finger"; source: "reset_finger";
425 action: STATE_SET "default" 0.0;
426 transition: LINEAR 0.2;
427 target: "right-little-finger";
428 target: "right-ring-finger";
429 target: "right-middle-finger";
430 target: "right-index-finger";
431 target: "right-thumb";
432 }
433 }
434 }
435
436 group { "left_hand";
437 parts {
438 image { "left_hand";
439 scale: 1;
440 desc { "default";
441 min: 650 400;
442 max: 650 400;
443 image.normal: "left_hand.png";
444 color_class: ":fg";
445 }
446 }
447 image { "left-little-finger";
448 scale: 1;
449 desc { "default";
450 min: 40 40;
451 max: 40 40;
452 image.normal: "fingerprint_icon";
453 rel.to: "left_hand";
454 rel1.relative: (186/609) (125/375);
455 rel2.relative: (186/609) (125/375);
456 color_class: ":bg-light";
457 }
458 desc { "enrolled";
459 inherit: "default";
460 color_class: ":success";
461 }
462 }
463 swallow {"swallow_left-little-finger";
464 desc { "default";
465 rel.to: "left-little-finger";
466 }
467 }
468
469 image { "left-ring-finger";
470 scale: 1;
471 desc { "default";
472 min: 40 40;
473 max: 40 40;
474 image.normal: "fingerprint_icon";
475 rel.to: "left_hand";
476 rel1.relative: (243/609) (82/375);
477 rel2.relative: (243/609) (82/375);
478 color_class: ":bg-light";
479 }
480 desc { "enrolled";
481 inherit: "default";
482 color_class: ":success";
483 }
484 }
485 swallow {"swallow_left-ring-finger";
486 desc { "default";
487 rel.to: "left-ring-finger";
488 }
489 }
490
491 image { "left-middle-finger";
492 scale: 1;
493 desc { "default";
494 min: 40 40;
495 max: 40 40;
496 image.normal: "fingerprint_icon";
497 rel.to: "left_hand";
498 rel1.relative: (300/609) (51/375);
499 rel2.relative: (300/609) (51/375);
500 color_class: ":bg-light";
501 }
502 desc { "enrolled";
503 inherit: "default";
504 color_class: ":success";
505 }
506 }
507 swallow {"swallow_left-middle-finger";
508 desc { "default";
509 rel.to: "left-middle-finger";
510 }
511 }
512
513 image { "left-index-finger";
514 scale: 1;
515 desc { "default";
516 min: 40 40;
517 max: 40 40;
518 image.normal: "fingerprint_icon";
519 rel.to: "left_hand";
520 rel1.relative: (358/609) (75/375);
521 rel2.relative: (358/609) (75/375);
522 color_class: ":bg-light";
523 }
524 desc { "enrolled";
525 inherit: "default";
526 color_class: ":success";
527 }
528 }
529 swallow {"swallow_left-index-finger";
530 desc { "default";
531 rel.to: "left-index-finger";
532 }
533 }
534
535 image { "left-thumb";
536 scale: 1;
537 desc { "default";
538 min: 40 40;
539 max: 40 40;
540 image.normal: "fingerprint_icon";
541 rel.to: "left_hand";
542 rel1.relative: (416/609) (209/375);
543 rel2.relative: (416/609) (209/375);
544 color_class: ":bg-light";
545 }
546 desc { "enrolled";
547 inherit: "default";
548 color_class: ":success";
549 }
550 }
551 swallow {"swallow_left-thumb";
552 desc { "default";
553 rel.to: "left-thumb";
554 }
555 }
556
557 // LIST SWALLOW
558 swallow {"swallow_hand_switch";
559 scale: 1;
560 desc { "default";
561 min: 40 40;
562 max: 40 40;
563 rel1.to_y: "left_hand";
564 rel1.relative: 0.6 0.0;
565 }
566 }
567 }
568 programs {
569 program { signal: "enrolled_finger"; source: "*";
570 script {
571 set_state(get_part_id(src), "enrolled", 0.0);
572 }
573 }
574 program { signal: "reset_finger"; source: "reset_finger";
575 action: STATE_SET "default" 0.0;
576 transition: LINEAR 0.2;
577 target: "left-little-finger";
578 target: "left-ring-finger";
579 target: "left-middle-finger";
580 target: "left-index-finger";
581 target: "left-thumb";
582 }
583 }
584 }
585
586 group { "finger";
587 parts {
588 swallow {"swallow_select-finger-left";
589 scale: 1;
590 desc { "default";
591 align: 0 0.5;
592 min: 140 140;
593 max: 140 140;
594 }
595 }
596 image { "fingerprint_icon";
597 scale: 1;
598 desc { "default";
599 align: 0.0 0.0;
600 min: 200 200;
601 max: 200 200;
602 image.normal: "1_0";
603 rel1.to_x: "swallow_select-finger-left";
604 rel1.relative: 1.0 0.0;
605 color_class: ":fg";
606 }
607 desc { "enrolled";
608 inherit: "default";
609 color_class: ":success";
610 }
611 }
612 swallow {"swallow_select-finger";
613 scale: 1;
614 desc { "default";
615 align: 0.0 0.0;
616 min: 200 200;
617 max: 200 200;
618 rel1.to_x: "swallow_select-finger-left";
619 rel1.relative: 1.0 0.0;
620 }
621 }
622
623 swallow {"swallow_select-finger-right";
624 scale: 1;
625 desc { "default";
626 align: 1.0 0.5;
627 min: 140 140;
628 max: 140 140;
629 rel1.to_x: "fingerprint_icon";
630 rel1.relative: 1.0 0.0;
631 }
632 }
633 }
634 programs {
635 program { signal: "enrolled_finger"; source: "enrolled_finger";
636 script {
637 set_state(get_part_id("fingerprint_icon"), "enrolled", 0.0);
638 }
639 }
640 program { signal: "not_enrolled_finger"; source: "not_enrolled_finger";
641 script {
642 set_state(get_part_id("fingerprint_icon"), "default", 0.0);
643 }
644 }
645 }
646 }
647
648 group { "enroll";
649 parts {
650 image { "0";
651 scale: 1;
652 desc { "default";
653 min: 140 140;
654 max: 140 140;
655 image.normal: "1_0";
656 color_class: ":fg";
657 }
658 desc { "failed";
659 inherit: "default";
660 color_class: ":success";
661 }
662 }
663 image { "1";
664 scale: 1;
665 desc { "default";
666 min: 140 140;
667 max: 140 140;
668 visible: 0;
669 image.normal: "1_1";
670 color_class: ":fg";
671 }
672 desc { "success";
673 inherit: "default";
674 visible: 1;
675 color_class: ":success";
676 }
677 desc { "failed";
678 inherit: "default";
679 visible: 1;
680 image.normal: "1_1_failed";
681 color_class: ":selected-alt";
682 }
683 }
684 image { "2";
685 scale: 1;
686 desc { "default";
687 min: 140 140;
688 max: 140 140;
689 visible: 0;
690 image.normal: "1_2";
691 color_class: ":fg";
692 }
693 desc { "success";
694 inherit: "default";
695 visible: 1;
696 color_class: ":success";
697 }
698 desc { "failed";
699 inherit: "default";
700 visible: 1;
701 image.normal: "1_2_failed";
702 color_class: ":selected-alt";
703 }
704 }
705 image { "3";
706 scale: 1;
707 desc { "default";
708 min: 140 140;
709 max: 140 140;
710 visible: 0;
711 image.normal: "1_3";
712 color_class: ":fg";
713 }
714 desc { "success";
715 inherit: "default";
716 visible: 1;
717 color_class: ":success";
718 }
719 desc { "failed";
720 inherit: "default";
721 visible: 1;
722 image.normal: "1_3_failed";
723 color_class: ":selected-alt";
724 }
725 }
726 image { "4";
727 scale: 1;
728 desc { "default";
729 min: 140 140;
730 max: 140 140;
731 visible: 0;
732 image.normal: "1_4";
733 color_class: ":fg";
734 }
735 desc { "success";
736 inherit: "default";
737 visible: 1;
738 color_class: ":success";
739 }
740 desc { "failed";
741 inherit: "default";
742 visible: 1;
743 image.normal: "1_4_failed";
744 color_class: ":selected-alt";
745 }
746 }
747 image { "5";
748 scale: 1;
749 desc { "default";
750 min: 140 140;
751 max: 140 140;
752 visible: 0;
753 image.normal: "1_5";
754 color_class: ":fg";
755 }
756 desc { "success";
757 inherit: "default";
758 visible: 1;
759 color_class: ":success";
760 }
761 desc { "failed";
762 inherit: "default";
763 visible: 1;
764 image.normal: "1_5_failed";
765 color_class: ":selected-alt";
766 }
767 }
768 }
769 programs {
770 program { signal: "success"; source: "*";
771 script {
772 set_state(get_part_id(src), "success", 0.0);
773 }
774 }
775 program { signal: "failed"; source: "*";
776 script {
777 set_state(get_part_id(src), "failed", 0.0);
778 }
779 }
780 program { signal: "enrolled__failed"; source: "enrolled__failed";
781 action: STATE_SET "failed" 0.0;
782 transition: LINEAR 0.2;
783 target: "0";
784 }
785 program { signal: "enrolled__failed"; source: "enrolled__failed";
786 action: STATE_SET "default" 0.0;
787 transition: LINEAR 0.2;
788 target: "1";
789 target: "2";
790 target: "3";
791 target: "4";
792 target: "5";
793 }
794 }
795 }
796
797 group { "verify";
798 parts {
799 image { "0";
800 scale: 1;
801 desc { "default";
802 min: 140 140;
803 max: 140 140;
804 image.normal: "1_0";
805 color_class: ":fg";
806 }
807 desc { "success";
808 inherit: "default";
809 color_class: ":success";
810 }
811 desc { "failed";
812 inherit: "default";
813 color_class: ":selected-alt";
814 }
815 }
816 }
817 programs {
818 program { signal: "success"; source: "success";
819 action: STATE_SET "success" 0.0;
820 transition: LINEAR 0.2;
821 target: "0";
822 after: "reset1";
823 }
824 program { name: "reset1";
825 action: STATE_SET "default" 0.0;
826 transition: ACCEL 4.0;
827 target: "0";
828 }
829 program { signal: "failed"; source: "failed";
830 transition: LINEAR 0.2;
831 action: STATE_SET "failed" 0.0;
832 target: "0";
833 after: "reset";
834 }
835 program { name: "reset";
836 action: STATE_SET "default" 0.0;
837 transition: ACCEL 2.0;
838 target: "0";
839 }
840 }
841 }
842
843 group { "icon";
844 parts {
845 image { "0";
846 scale: 1;
847 desc { "default";
848 image.normal: "1_0";
849 color_class: ":success";
850 }
851 }
852 }
853 }
854
855}
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-140.png b/src/bin/tools/fprint/data/themes/images/1_0-140.png
new file mode 100644
index 000000000..1197f2db5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-280.png b/src/bin/tools/fprint/data/themes/images/1_0-280.png
new file mode 100644
index 000000000..7b0b7c98f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_0-560.png b/src/bin/tools/fprint/data/themes/images/1_0-560.png
new file mode 100644
index 000000000..9f79a4e18
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_0-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-140.png b/src/bin/tools/fprint/data/themes/images/1_1-140.png
new file mode 100644
index 000000000..71a0e1de9
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-280.png b/src/bin/tools/fprint/data/themes/images/1_1-280.png
new file mode 100644
index 000000000..9d6d832ad
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1-560.png b/src/bin/tools/fprint/data/themes/images/1_1-560.png
new file mode 100644
index 000000000..e149196f6
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png
new file mode 100644
index 000000000..6a0b86f0d
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png
new file mode 100644
index 000000000..175c6a9ca
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png
new file mode 100644
index 000000000..d12cfbf66
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_1_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-140.png b/src/bin/tools/fprint/data/themes/images/1_2-140.png
new file mode 100644
index 000000000..91fd1c998
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-280.png b/src/bin/tools/fprint/data/themes/images/1_2-280.png
new file mode 100644
index 000000000..fd6ec1ff8
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2-560.png b/src/bin/tools/fprint/data/themes/images/1_2-560.png
new file mode 100644
index 000000000..78fbe414d
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png
new file mode 100644
index 000000000..e0deefc5a
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png
new file mode 100644
index 000000000..185bb655c
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png
new file mode 100644
index 000000000..882bb035e
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_2_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-140.png b/src/bin/tools/fprint/data/themes/images/1_3-140.png
new file mode 100644
index 000000000..2d6909eb3
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-280.png b/src/bin/tools/fprint/data/themes/images/1_3-280.png
new file mode 100644
index 000000000..e0c33f6d7
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3-560.png b/src/bin/tools/fprint/data/themes/images/1_3-560.png
new file mode 100644
index 000000000..2c0da69f7
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png
new file mode 100644
index 000000000..c4395e0df
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png
new file mode 100644
index 000000000..9fd0c59d9
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png
new file mode 100644
index 000000000..837ae95b5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_3_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-140.png b/src/bin/tools/fprint/data/themes/images/1_4-140.png
new file mode 100644
index 000000000..3206e2e3b
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-280.png b/src/bin/tools/fprint/data/themes/images/1_4-280.png
new file mode 100644
index 000000000..32deb92f3
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4-560.png b/src/bin/tools/fprint/data/themes/images/1_4-560.png
new file mode 100644
index 000000000..f61e69e58
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png
new file mode 100644
index 000000000..efa20ef85
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png
new file mode 100644
index 000000000..279f99628
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png
new file mode 100644
index 000000000..e797223db
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_4_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-140.png b/src/bin/tools/fprint/data/themes/images/1_5-140.png
new file mode 100644
index 000000000..5052de5c0
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-280.png b/src/bin/tools/fprint/data/themes/images/1_5-280.png
new file mode 100644
index 000000000..22f02ad47
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5-560.png b/src/bin/tools/fprint/data/themes/images/1_5-560.png
new file mode 100644
index 000000000..1256f776b
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png
new file mode 100644
index 000000000..61f912a53
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-140.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png
new file mode 100644
index 000000000..e28bfd528
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-280.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png b/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png
new file mode 100644
index 000000000..6fcce5ee5
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/1_5_failed-560.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png
new file mode 100644
index 000000000..0a297585c
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-040.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png
new file mode 100644
index 000000000..919889995
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-080.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png
new file mode 100644
index 000000000..8ec961295
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/fingerprint_icon-160.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/hands.png b/src/bin/tools/fprint/data/themes/images/hands.png
new file mode 100644
index 000000000..682a46b99
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/hands.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/left_hand.png b/src/bin/tools/fprint/data/themes/images/left_hand.png
new file mode 100644
index 000000000..3e319c69e
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/left_hand.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_0.svg b/src/bin/tools/fprint/data/themes/images/orig/1_0.svg
new file mode 100644
index 000000000..fa35c2471
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_0.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_0.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="2560"
56 inkscape:window-height="1377"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-88.970814"
61 inkscape:cy="-27.03533"
62 inkscape:window-x="0"
63 inkscape:window-y="0"
64 inkscape:window-maximized="1"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#fefefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_1.svg b/src/bin/tools/fprint/data/themes/images/orig/1_1.svg
new file mode 100644
index 000000000..797a7e754
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_1.svg
@@ -0,0 +1,120 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_1.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.4185125"
60 inkscape:cx="123.01619"
61 inkscape:cy="100.10487"
62 inkscape:window-x="242"
63 inkscape:window-y="493"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="1.7290736"
111 sodipodi:start="0.65622285"
112 sodipodi:ry="45.901638"
113 sodipodi:rx="45.901638"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5079"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 </g>
120</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg
new file mode 100644
index 000000000..c2a262f5f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_1_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_1_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="15.238095"
61 inkscape:cy="97.327189"
62 inkscape:window-x="997"
63 inkscape:window-y="309"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffdfd;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
82 id="path5071"
83 sodipodi:type="arc"
84 sodipodi:cx="149.5"
85 sodipodi:cy="149.5"
86 sodipodi:rx="45.901638"
87 sodipodi:ry="45.901638"
88 sodipodi:start="2.6954195"
89 sodipodi:end="5.9000004"
90 sodipodi:open="true"
91 sodipodi:arc-type="arc"
92 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
93 <path
94 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
95 sodipodi:arc-type="arc"
96 sodipodi:open="true"
97 sodipodi:end="1.7290736"
98 sodipodi:start="0.65622285"
99 sodipodi:ry="45.901638"
100 sodipodi:rx="45.901638"
101 sodipodi:cy="149.5"
102 sodipodi:cx="149.5"
103 sodipodi:type="arc"
104 id="path5079"
105 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffdfd;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_2.svg b/src/bin/tools/fprint/data/themes/images/orig/1_2.svg
new file mode 100644
index 000000000..937e65bff
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_2.svg
@@ -0,0 +1,146 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_2.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-187.28111"
61 inkscape:cy="206.45161"
62 inkscape:window-x="475"
63 inkscape:window-y="155"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
121 sodipodi:arc-type="arc"
122 sodipodi:open="true"
123 sodipodi:end="1.7290736"
124 sodipodi:start="0.65622285"
125 sodipodi:ry="45.901638"
126 sodipodi:rx="45.901638"
127 sodipodi:cy="149.5"
128 sodipodi:cx="149.5"
129 sodipodi:type="arc"
130 id="path5079"
131 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
132 <path
133 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
134 id="path5081"
135 sodipodi:type="arc"
136 sodipodi:cx="149.5"
137 sodipodi:cy="149.5"
138 sodipodi:rx="68.852463"
139 sodipodi:ry="68.852463"
140 sodipodi:start="4.9434339"
141 sodipodi:end="5.6642139"
142 sodipodi:open="true"
143 sodipodi:arc-type="arc"
144 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
145 </g>
146</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg
new file mode 100644
index 000000000..4340f9945
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_2_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_2_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-175.48387"
61 inkscape:cy="223.16436"
62 inkscape:window-x="173"
63 inkscape:window-y="27"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="3.7435892"
85 sodipodi:start="0.064467936"
86 sodipodi:ry="68.852463"
87 sodipodi:rx="68.852463"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5073"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5081"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="68.852463"
100 sodipodi:ry="68.852463"
101 sodipodi:start="4.9434339"
102 sodipodi:end="5.6642139"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_3.svg b/src/bin/tools/fprint/data/themes/images/orig/1_3.svg
new file mode 100644
index 000000000..e229d7b54
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_3.svg
@@ -0,0 +1,172 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_3.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-190.23041"
61 inkscape:cy="196.62058"
62 inkscape:window-x="740"
63 inkscape:window-y="375"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 sodipodi:open="true"
121 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
122 id="path5075"
123 sodipodi:type="arc"
124 sodipodi:cx="149.5"
125 sodipodi:cy="149.5"
126 sodipodi:rx="91.803276"
127 sodipodi:ry="91.803276"
128 sodipodi:start="1.4555675"
129 sodipodi:end="4.4180899"
130 sodipodi:arc-type="arc"
131 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
132 <path
133 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
134 sodipodi:arc-type="arc"
135 sodipodi:open="true"
136 sodipodi:end="1.7290736"
137 sodipodi:start="0.65622285"
138 sodipodi:ry="45.901638"
139 sodipodi:rx="45.901638"
140 sodipodi:cy="149.5"
141 sodipodi:cx="149.5"
142 sodipodi:type="arc"
143 id="path5079"
144 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
145 <path
146 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
147 id="path5081"
148 sodipodi:type="arc"
149 sodipodi:cx="149.5"
150 sodipodi:cy="149.5"
151 sodipodi:rx="68.852463"
152 sodipodi:ry="68.852463"
153 sodipodi:start="4.9434339"
154 sodipodi:end="5.6642139"
155 sodipodi:open="true"
156 sodipodi:arc-type="arc"
157 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
158 <path
159 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
160 sodipodi:arc-type="arc"
161 sodipodi:end="0.48338606"
162 sodipodi:start="5.3815708"
163 sodipodi:ry="91.803276"
164 sodipodi:rx="91.803276"
165 sodipodi:cy="149.5"
166 sodipodi:cx="149.5"
167 sodipodi:type="arc"
168 id="path5083"
169 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
170 sodipodi:open="true" />
171 </g>
172</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg
new file mode 100644
index 000000000..fde1e5958
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_3_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_3_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-206.94316"
61 inkscape:cy="174.00922"
62 inkscape:window-x="155"
63 inkscape:window-y="31"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 sodipodi:open="true"
82 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
83 id="path5075"
84 sodipodi:type="arc"
85 sodipodi:cx="149.5"
86 sodipodi:cy="149.5"
87 sodipodi:rx="91.803276"
88 sodipodi:ry="91.803276"
89 sodipodi:start="1.4555675"
90 sodipodi:end="4.4180899"
91 sodipodi:arc-type="arc"
92 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
93 <path
94 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
95 sodipodi:arc-type="arc"
96 sodipodi:end="0.48338606"
97 sodipodi:start="5.3815708"
98 sodipodi:ry="91.803276"
99 sodipodi:rx="91.803276"
100 sodipodi:cy="149.5"
101 sodipodi:cx="149.5"
102 sodipodi:type="arc"
103 id="path5083"
104 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
105 sodipodi:open="true" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_4.svg b/src/bin/tools/fprint/data/themes/images/orig/1_4.svg
new file mode 100644
index 000000000..e3d764c59
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_4.svg
@@ -0,0 +1,198 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_4.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-222.67281"
61 inkscape:cy="228.07988"
62 inkscape:window-x="373"
63 inkscape:window-y="197"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="4.9720722"
85 sodipodi:start="0.65163863"
86 sodipodi:ry="22.950819"
87 sodipodi:rx="22.950819"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5069"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5071"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="45.901638"
100 sodipodi:ry="45.901638"
101 sodipodi:start="2.6954195"
102 sodipodi:end="5.9000004"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
106 <path
107 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
108 sodipodi:arc-type="arc"
109 sodipodi:open="true"
110 sodipodi:end="3.7435892"
111 sodipodi:start="0.064467936"
112 sodipodi:ry="68.852463"
113 sodipodi:rx="68.852463"
114 sodipodi:cy="149.5"
115 sodipodi:cx="149.5"
116 sodipodi:type="arc"
117 id="path5073"
118 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
119 <path
120 sodipodi:open="true"
121 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
122 id="path5075"
123 sodipodi:type="arc"
124 sodipodi:cx="149.5"
125 sodipodi:cy="149.5"
126 sodipodi:rx="91.803276"
127 sodipodi:ry="91.803276"
128 sodipodi:start="1.4555675"
129 sodipodi:end="4.4180899"
130 sodipodi:arc-type="arc"
131 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
132 <path
133 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
134 sodipodi:arc-type="arc"
135 sodipodi:open="true"
136 sodipodi:end="2.968721"
137 sodipodi:start="4.9326345"
138 sodipodi:ry="114.7541"
139 sodipodi:rx="114.7541"
140 sodipodi:cy="149.5"
141 sodipodi:cx="149.5"
142 sodipodi:type="arc"
143 id="path5077"
144 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
145 <path
146 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
147 sodipodi:arc-type="arc"
148 sodipodi:open="true"
149 sodipodi:end="1.7290736"
150 sodipodi:start="0.65622285"
151 sodipodi:ry="45.901638"
152 sodipodi:rx="45.901638"
153 sodipodi:cy="149.5"
154 sodipodi:cx="149.5"
155 sodipodi:type="arc"
156 id="path5079"
157 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
158 <path
159 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
160 id="path5081"
161 sodipodi:type="arc"
162 sodipodi:cx="149.5"
163 sodipodi:cy="149.5"
164 sodipodi:rx="68.852463"
165 sodipodi:ry="68.852463"
166 sodipodi:start="4.9434339"
167 sodipodi:end="5.6642139"
168 sodipodi:open="true"
169 sodipodi:arc-type="arc"
170 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
171 <path
172 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
173 sodipodi:arc-type="arc"
174 sodipodi:end="0.48338606"
175 sodipodi:start="5.3815708"
176 sodipodi:ry="91.803276"
177 sodipodi:rx="91.803276"
178 sodipodi:cy="149.5"
179 sodipodi:cx="149.5"
180 sodipodi:type="arc"
181 id="path5083"
182 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
183 sodipodi:open="true" />
184 <path
185 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
186 id="path5085"
187 sodipodi:type="arc"
188 sodipodi:cx="149.5"
189 sodipodi:cy="149.5"
190 sodipodi:rx="114.7541"
191 sodipodi:ry="114.7541"
192 sodipodi:start="3.7973554"
193 sodipodi:end="4.1880314"
194 sodipodi:open="true"
195 sodipodi:arc-type="arc"
196 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
197 </g>
198</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg
new file mode 100644
index 000000000..bb8acbe49
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_4_failed.svg
@@ -0,0 +1,107 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_4_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-209.89247"
61 inkscape:cy="234.9616"
62 inkscape:window-x="152"
63 inkscape:window-y="86"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <path
81 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
82 sodipodi:arc-type="arc"
83 sodipodi:open="true"
84 sodipodi:end="2.968721"
85 sodipodi:start="4.9326345"
86 sodipodi:ry="114.7541"
87 sodipodi:rx="114.7541"
88 sodipodi:cy="149.5"
89 sodipodi:cx="149.5"
90 sodipodi:type="arc"
91 id="path5077"
92 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
93 <path
94 style="opacity:1;fill:none;fill-opacity:1;stroke:#fffefe;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
95 id="path5085"
96 sodipodi:type="arc"
97 sodipodi:cx="149.5"
98 sodipodi:cy="149.5"
99 sodipodi:rx="114.7541"
100 sodipodi:ry="114.7541"
101 sodipodi:start="3.7973554"
102 sodipodi:end="4.1880314"
103 sodipodi:open="true"
104 sodipodi:arc-type="arc"
105 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
106 </g>
107</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_5.svg b/src/bin/tools/fprint/data/themes/images/orig/1_5.svg
new file mode 100644
index 000000000..0b8e3dc21
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_5.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_5.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-214.80799"
61 inkscape:cy="172.04301"
62 inkscape:window-x="3323"
63 inkscape:window-y="375"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 <path
87 d="m 167.74799,163.41944 a 22.950819,22.950819 0 0 1 -29.67145,5.98646 22.950819,22.950819 0 0 1 -9.80104,-28.63865 22.950819,22.950819 0 0 1 27.11768,-13.44856"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="22.950819"
93 sodipodi:rx="22.950819"
94 sodipodi:cy="149.5"
95 sodipodi:cx="149.5"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="149.5"
104 sodipodi:cy="149.5"
105 sodipodi:rx="45.901638"
106 sodipodi:ry="45.901638"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 108.0919,169.30731 a 45.901638,45.901638 0 0 1 4.10371,-46.5532 45.901638,45.901638 0 0 1 42.77284,-18.82884 45.901638,45.901638 0 0 1 37.10434,28.4132" />
112 <path
113 d="M 218.20943,153.9357 A 68.852463,68.852463 0 0 1 168.52477,215.6719 68.852463,68.852463 0 0 1 93.638113,189.75061 68.852463,68.852463 0 0 1 92.751343,110.5096"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="68.852463"
119 sodipodi:rx="68.852463"
120 sodipodi:cy="149.5"
121 sodipodi:cx="149.5"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="149.5"
131 sodipodi:cy="149.5"
132 sodipodi:rx="91.803276"
133 sodipodi:ry="91.803276"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 160.05499,240.69448 A 91.803276,91.803276 0 0 1 59.614585,168.16692 91.803276,91.803276 0 0 1 122.8707,61.643742" />
138 <path
139 d="M 174.57024,37.517921 A 114.7541,114.7541 0 0 1 263.79781,159.72324 114.7541,114.7541 0 0 1 154.29906,264.1537 114.7541,114.7541 0 0 1 36.456328,169.23907"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="114.7541"
145 sodipodi:rx="114.7541"
146 sodipodi:cy="149.5"
147 sodipodi:cx="149.5"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="45.901638"
158 sodipodi:rx="45.901638"
159 sodipodi:cy="149.5"
160 sodipodi:cx="149.5"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="149.5"
169 sodipodi:cy="149.5"
170 sodipodi:rx="68.852463"
171 sodipodi:ry="68.852463"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
177 <path
178 d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="91.803276"
183 sodipodi:rx="91.803276"
184 sodipodi:cy="149.5"
185 sodipodi:cx="149.5"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="149.5"
195 sodipodi:cy="149.5"
196 sodipodi:rx="114.7541"
197 sodipodi:ry="114.7541"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg b/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg
new file mode 100644
index 000000000..d040cc94f
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/1_5_failed.svg
@@ -0,0 +1,87 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="300"
6 height="300"
7 viewBox="0 0 300 300"
8 sodipodi:docname="1_5_failed.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/i-140.png"
11 inkscape:export-xdpi="44.799999"
12 inkscape:export-ydpi="44.799999"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="1262"
56 inkscape:window-height="820"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="1.0171875"
60 inkscape:cx="-205.96006"
61 inkscape:cy="212.35023"
62 inkscape:window-x="3670"
63 inkscape:window-y="354"
64 inkscape:window-maximized="0"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="137.70493"
82 cy="149.5"
83 cx="149.5"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
86 </g>
87</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg b/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg
new file mode 100644
index 000000000..c23d743df
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/orig/fingerprint_icon.svg
@@ -0,0 +1,204 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 version="1.1"
4 id="svg2"
5 width="80"
6 height="80"
7 viewBox="0 0 80 80"
8 sodipodi:docname="fingerprint_icon.svg"
9 inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
10 inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
11 inkscape:export-xdpi="48"
12 inkscape:export-ydpi="48"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15 xmlns="http://www.w3.org/2000/svg"
16 xmlns:svg="http://www.w3.org/2000/svg"
17 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18 xmlns:cc="http://creativecommons.org/ns#"
19 xmlns:dc="http://purl.org/dc/elements/1.1/">
20 <metadata
21 id="metadata8">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs6">
33 <mask
34 maskUnits="userSpaceOnUse"
35 id="mask947">
36 <rect
37 style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
38 id="rect949"
39 width="60"
40 height="40"
41 x="10"
42 y="5" />
43 </mask>
44 </defs>
45 <sodipodi:namedview
46 inkscape:document-rotation="0"
47 pagecolor="#404040"
48 bordercolor="#666666"
49 borderopacity="1"
50 objecttolerance="10"
51 gridtolerance="10"
52 guidetolerance="10"
53 inkscape:pageopacity="0"
54 inkscape:pageshadow="2"
55 inkscape:window-width="2560"
56 inkscape:window-height="1377"
57 id="namedview4"
58 showgrid="true"
59 inkscape:zoom="5.7540814"
60 inkscape:cx="37.451677"
61 inkscape:cy="36.930308"
62 inkscape:window-x="0"
63 inkscape:window-y="0"
64 inkscape:window-maximized="1"
65 inkscape:current-layer="g10"
66 showguides="false"
67 inkscape:snap-bbox="true"
68 inkscape:bbox-nodes="true"
69 inkscape:snap-others="false"
70 inkscape:snap-nodes="true"
71 inkscape:pagecheckerboard="0">
72 <inkscape:grid
73 type="xygrid"
74 id="grid837" />
75 </sodipodi:namedview>
76 <g
77 inkscape:groupmode="layer"
78 inkscape:label="Image"
79 id="g10">
80 <circle
81 r="30"
82 cy="40"
83 cx="40"
84 id="path5067"
85 style="opacity:1;fill:none;fill-opacity:1;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
86 <path
87 d="m 43.975455,43.03245 a 5,5 0 0 1 -6.464136,1.304192 5,5 0 0 1 -2.135227,-6.239133 5,5 0 0 1 5.90778,-2.929866"
88 sodipodi:arc-type="arc"
89 sodipodi:open="true"
90 sodipodi:end="4.9720722"
91 sodipodi:start="0.65163863"
92 sodipodi:ry="5"
93 sodipodi:rx="5"
94 sodipodi:cy="40"
95 sodipodi:cx="40"
96 sodipodi:type="arc"
97 id="path5069"
98 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
99 <path
100 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
101 id="path5071"
102 sodipodi:type="arc"
103 sodipodi:cx="40"
104 sodipodi:cy="40"
105 sodipodi:rx="10"
106 sodipodi:ry="10"
107 sodipodi:start="2.6954195"
108 sodipodi:end="5.9000004"
109 sodipodi:open="true"
110 sodipodi:arc-type="arc"
111 d="m 30.978949,44.315165 a 10,10 0 0 1 0.894023,-10.141949 10,10 0 0 1 9.31837,-4.101998 10,10 0 0 1 8.083444,6.190019" />
112 <path
113 d="M 54.96884,40.966349 A 15,15 0 0 1 44.144681,54.41602 15,15 0 0 1 27.83009,48.768881 15,15 0 0 1 27.6369,31.505662"
114 sodipodi:arc-type="arc"
115 sodipodi:open="true"
116 sodipodi:end="3.7435892"
117 sodipodi:start="0.064467936"
118 sodipodi:ry="15"
119 sodipodi:rx="15"
120 sodipodi:cy="40"
121 sodipodi:cx="40"
122 sodipodi:type="arc"
123 id="path5073"
124 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
125 <path
126 sodipodi:open="true"
127 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
128 id="path5075"
129 sodipodi:type="arc"
130 sodipodi:cx="40"
131 sodipodi:cy="40"
132 sodipodi:rx="20"
133 sodipodi:ry="20"
134 sodipodi:start="1.4555675"
135 sodipodi:end="4.4180899"
136 sodipodi:arc-type="arc"
137 d="M 42.29948,59.86737 A 20,20 0 0 1 20.41782,44.066721 20,20 0 0 1 34.198617,20.859886" />
138 <path
139 d="M 45.46173,15.603904 A 25,25 0 0 1 64.900594,42.227205 25,25 0 0 1 41.04551,64.978129 25,25 0 0 1 15.372628,44.300298"
140 sodipodi:arc-type="arc"
141 sodipodi:open="true"
142 sodipodi:end="2.968721"
143 sodipodi:start="4.9326345"
144 sodipodi:ry="25"
145 sodipodi:rx="25"
146 sodipodi:cy="40"
147 sodipodi:cx="40"
148 sodipodi:type="arc"
149 id="path5077"
150 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
151 <path
152 d="m 47.923024,46.101286 a 10,10 0 0 1 -9.499196,3.773717"
153 sodipodi:arc-type="arc"
154 sodipodi:open="true"
155 sodipodi:end="1.7290736"
156 sodipodi:start="0.65622285"
157 sodipodi:ry="10"
158 sodipodi:rx="10"
159 sodipodi:cy="40"
160 sodipodi:cx="40"
161 sodipodi:type="arc"
162 id="path5079"
163 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
164 <path
165 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
166 id="path5081"
167 sodipodi:type="arc"
168 sodipodi:cx="40"
169 sodipodi:cy="40"
170 sodipodi:rx="15"
171 sodipodi:ry="15"
172 sodipodi:start="4.9434339"
173 sodipodi:end="5.6642139"
174 sodipodi:open="true"
175 sodipodi:arc-type="arc"
176 d="m 43.434922,25.398585 a 15,15 0 0 1 8.782213,5.898449" />
177 <path
178 d="m 52.406889,24.31341 a 20,20 0 0 1 5.301636,24.982189"
179 sodipodi:arc-type="arc"
180 sodipodi:end="0.48338606"
181 sodipodi:start="5.3815708"
182 sodipodi:ry="20"
183 sodipodi:rx="20"
184 sodipodi:cy="40"
185 sodipodi:cx="40"
186 sodipodi:type="arc"
187 id="path5083"
188 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
189 sodipodi:open="true" />
190 <path
191 style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
192 id="path5085"
193 sodipodi:type="arc"
194 sodipodi:cx="40"
195 sodipodi:cy="40"
196 sodipodi:rx="25"
197 sodipodi:ry="25"
198 sodipodi:start="3.7973554"
199 sodipodi:end="4.1880314"
200 sodipodi:open="true"
201 sodipodi:arc-type="arc"
202 d="m 20.185423,24.755901 a 25,25 0 0 1 7.298152,-6.397045" />
203 </g>
204</svg>
diff --git a/src/bin/tools/fprint/data/themes/images/right_hand.png b/src/bin/tools/fprint/data/themes/images/right_hand.png
new file mode 100644
index 000000000..d2353958e
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/images/right_hand.png
Binary files differ
diff --git a/src/bin/tools/fprint/data/themes/meson.build b/src/bin/tools/fprint/data/themes/meson.build
new file mode 100644
index 000000000..334d52bcc
--- /dev/null
+++ b/src/bin/tools/fprint/data/themes/meson.build
@@ -0,0 +1,12 @@
1cmd = [ edje_cmd,
2 '-id', join_paths(meson.current_source_dir(), 'images'),
3 '@INPUT@', '@OUTPUT@'
4 ]
5src = 'enlightenment_fprint'
6custom_target(src + '.edj',
7 input : src + '.edc',
8 output : src + '.edj',
9 command : cmd,
10 install_dir: join_paths(dir_data, proj, 'themes'),
11 install : true
12 )
diff --git a/src/bin/tools/fprint/meson.build b/src/bin/tools/fprint/meson.build
new file mode 100644
index 000000000..27a3b2840
--- /dev/null
+++ b/src/bin/tools/fprint/meson.build
@@ -0,0 +1,112 @@
1##### project
2#project('e-fprint-gui', 'c',
3# version : '0.1',
4 # license : 'BSD 2 clause',
5# default_options: [ 'c_std=gnu99' ],
6# meson_version : '>= 0.40.0')
7#base_url = 'https://github.com/jf-simon/e-fprint-gui'
8
9##### convenience variables for later
10proj = meson.project_name()
11ver = meson.project_version()
12cfg = configuration_data()
13
14##### dependencies
15efl_version = '>= 1.19.0'
16elm = dependency('elementary', required: true, version: efl_version)
17edje = dependency('edje', required: true, version: efl_version)
18ecore = dependency('ecore', required: true, version: efl_version)
19ecorex = dependency('ecore-x', required: true, version: efl_version)
20depe = dependency('enlightenment', required: false)
21#curl_dep = dependency('libcurl', version : '>= 7.35.0', required: true)
22
23##### check for windows dependency
24#if build_machine.system() == 'windows'
25# win = dependency('evil', version: efl_version)
26#endif
27
28##### dir locations
29#dir_prefix = get_option('prefix')
30#dir_bin = join_paths(dir_prefix, get_option('bindir'))
31#dir_lib = join_paths(dir_prefix, get_option('libdir'))
32#dir_data = join_paths(dir_prefix, get_option('datadir'))
33#dir_locale = join_paths(dir_prefix, get_option('localedir'))
34
35##### config.h
36#cfg.set_quoted('PACKAGE' , proj)
37#cfg.set_quoted('PACKAGE_NAME' , proj)
38#cfg.set_quoted('PACKAGE_VERSION' , ver)
39#cfg.set_quoted('PACKAGE_STRING' , proj + ' ' + ver)
40#cfg.set_quoted('PACKAGE_URL' , base_url + proj)
41#cfg.set_quoted('PACKAGE_BIN_DIR' , dir_bin)
42#cfg.set_quoted('PACKAGE_LIB_DIR' , dir_lib)
43#cfg.set_quoted('BINDIR' , dir_bin)
44#cfg.set_quoted('DATADIR' , dir_data)
45#cfg.set_quoted('PACKAGE_DATA_DIR' , join_paths(dir_data, proj))
46#cfg.set_quoted('LOCALEDIR' , dir_locale)
47
48#add_global_arguments('-DPACKAGE_BIN_DIR="@0@"'.format(dir_bin), language: 'c')
49#add_global_arguments('-DPACKAGE_LIB_DIR="@0@"'.format(dir_lib), language: 'c')
50#add_global_arguments('-DPACKAGE_DATA_DIR="@0@"'.format(join_paths(dir_data, proj)), language: 'c')
51
52##### get C compiler
53#cc = meson.get_compiler('c')
54
55##### get edje command
56#edje_cmd = join_paths(edje.get_pkgconfig_variable('prefix'),
57# 'bin', 'edje_cc')
58
59##### Check for windows
60#if build_machine.system() == 'windows'
61# cfg.set ('_WIN32' , 1)
62#endif
63##### Check for arpa/inet and netinet/in.h
64#if cc.has_header('arpa/inet.h') == true
65# cfg.set ('HAVE_ARPA_INET_H' , 1)
66#endif
67#if cc.has_header('netinet/in.h') == true
68# cfg.set ('HAVE_NETINET_IN_H' , 1)
69#endif
70#if exif.found() == true
71# cfg.set ('HAVE_LIBEXIF' , 1)
72#endif
73#if depe.found() == true
74# build_gadget = true
75# cfg.set ('HAVE_E' , 1)
76#endif
77###### translations
78#use_translations = false
79#depnls = []
80#intl_lib = cc.find_library('intl', required: false)
81#if intl_lib.found()
82# cfg.set('HAVE_GETTEXT', 1)
83# cfg.set('ENABLE_NLS', 1)
84# depnls = [intl_lib]
85# use_translations = true
86#else
87# gettext_code = '''
88# #include <libintl.h>
89# int main(int argc, char *argv[]) {
90# (void)ngettext("", "", 0);
91# return 0;
92# }
93# '''
94# if cc.links(gettext_code)
95# cfg.set('HAVE_GETTEXT', 1)
96# cfg.set('ENABLE_NLS', 1)
97# use_translations = true
98# endif
99#endif
100#configure_file(output: 'config.h', configuration: cfg)
101
102#install_data('AUTHORS',
103# install_dir: join_paths(dir_data, 'e-fprint-gui'))
104
105#if use_translations
106# subdir('po')
107#endif
108
109eldbus_codegen = find_program('eldbus-codegen')
110
111subdir('src')
112subdir('data')
diff --git a/src/bin/tools/fprint/src/device.xml b/src/bin/tools/fprint/src/device.xml
new file mode 100644
index 000000000..ebb4647a5
--- /dev/null
+++ b/src/bin/tools/fprint/src/device.xml
@@ -0,0 +1,644 @@
1<!DOCTYPE node PUBLIC
2"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
3"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
4<!ENTITY ERROR_CLAIM_DEVICE "net.reactivated.Fprint.Error.ClaimDevice">
5<!ENTITY ERROR_ALREADY_IN_USE "net.reactivated.Fprint.Error.AlreadyInUse">
6<!ENTITY ERROR_INTERNAL "net.reactivated.Fprint.Error.Internal">
7<!ENTITY ERROR_PERMISSION_DENIED "net.reactivated.Fprint.Error.PermissionDenied">
8<!ENTITY ERROR_NO_ENROLLED_PRINTS "net.reactivated.Fprint.Error.NoEnrolledPrints">
9<!ENTITY ERROR_NO_ACTION_IN_PROGRESS "net.reactivated.Fprint.Error.NoActionInProgress">
10<!ENTITY ERROR_INVALID_FINGERNAME "net.reactivated.Fprint.Error.InvalidFingername">
11<!ENTITY ERROR_PRINTS_NOT_DELETED "net.reactivated.Fprint.Error.PrintsNotDeleted">
12<!ENTITY ERROR_PRINTS_NOT_DELETED_FROM_DEVICE "net.reactivated.Fprint.Error.PrintsNotDeletedFromDevice">
13]>
14
15<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
16 <interface name="net.reactivated.Fprint.Device">
17 <doc:doc>
18 <doc:title id="polkit-integration">
19 PolicyKit integration
20 </doc:title>
21 <doc:para>
22 fprintd uses PolicyKit to check whether users are allowed to access fingerprint data, or the
23 fingerprint readers itself.
24 <doc:list>
25 <doc:item>
26 <doc:term>net.reactivated.fprint.device.verify</doc:term>
27 <doc:definition>
28 Whether the user is allowed to verify fingers against saved fingerprints.
29 </doc:definition>
30 </doc:item>
31 <doc:item>
32 <doc:term>net.reactivated.fprint.device.enroll</doc:term>
33 <doc:definition>
34 Whether the user is allowed to enroll new fingerprints.
35 </doc:definition>
36 </doc:item>
37 <doc:item>
38 <doc:term>net.reactivated.fprint.device.setusername</doc:term>
39 <doc:definition>
40 Whether the user is allowed to query, verify, or enroll fingerprints for users other than itself.
41 </doc:definition>
42 </doc:item>
43 </doc:list>
44 </doc:para>
45
46 <doc:title id="usernames">
47 Usernames
48 </doc:title>
49 <doc:para>
50 When a username argument is used for a method, a PolicyKit check is done on the
51 <doc:tt>net.reactivated.fprint.device.setusername</doc:tt> PolicyKit
52 action to see whether the user the client is running as is allowed to access data from other users.
53 </doc:para>
54 <doc:para>
55 By default, only root is allowed to access fingerprint data for users other than itself. For a normal user,
56 it is recommended that you use an empty string for the username, which will mean "the client the user is
57 running as".
58 </doc:para>
59 <doc:para>
60 See <doc:ref type="description" to="polkit-integration">PolicyKit integration</doc:ref>.
61 </doc:para>
62
63 <doc:title id="fingerprint-names">
64 Fingerprint names
65 </doc:title>
66 <doc:para>
67 When a finger name argument is used for a method, it refers to either a single finger, or
68 "any" finger. See the list of possible values below:
69 <doc:list>
70 <doc:item>
71 <doc:term>left-thumb</doc:term>
72 <doc:definition>
73 Left thumb
74 </doc:definition>
75 </doc:item>
76 <doc:item>
77 <doc:term>left-index-finger</doc:term>
78 <doc:definition>
79 Left index finger
80 </doc:definition>
81 </doc:item>
82 <doc:item>
83 <doc:term>left-middle-finger</doc:term>
84 <doc:definition>
85 Left middle finger
86 </doc:definition>
87 </doc:item>
88 <doc:item>
89 <doc:term>left-ring-finger</doc:term>
90 <doc:definition>
91 Left ring finger
92 </doc:definition>
93 </doc:item>
94 <doc:item>
95 <doc:term>left-little-finger</doc:term>
96 <doc:definition>
97 Left little finger
98 </doc:definition>
99 </doc:item>
100 <doc:item>
101 <doc:term>right-thumb</doc:term>
102 <doc:definition>
103 Right thumb
104 </doc:definition>
105 </doc:item>
106 <doc:item>
107 <doc:term>right-index-finger</doc:term>
108 <doc:definition>
109 Right index finger
110 </doc:definition>
111 </doc:item>
112 <doc:item>
113 <doc:term>right-middle-finger</doc:term>
114 <doc:definition>
115 Right middle finger
116 </doc:definition>
117 </doc:item>
118 <doc:item>
119 <doc:term>right-ring-finger</doc:term>
120 <doc:definition>
121 Right ring finger
122 </doc:definition>
123 </doc:item>
124 <doc:item>
125 <doc:term>right-little-finger</doc:term>
126 <doc:definition>
127 Right little finger
128 </doc:definition>
129 </doc:item>
130 <doc:item>
131 <doc:term>any</doc:term>
132 <doc:definition>
133 Any finger. This is only used for <doc:ref type="method" to="Device.VerifyStart">Device.VerifyStart</doc:ref>
134 (select the first finger with a fingerprint associated, or all the fingerprints available for the user when
135 the device supports it) and <doc:ref type="signal" to="Device::VerifyFingerSelected">Device::VerifyFingerSelected</doc:ref>
136 (any finger with an associated fingerprint can be used).
137 </doc:definition>
138 </doc:item>
139 </doc:list>
140 </doc:para>
141
142 <doc:title id="verify-statuses">
143 Verify Statuses
144 </doc:title>
145 <doc:para>
146 <doc:list>
147 Possible values for the result passed through <doc:ref type="signal" to="Device::VerifyResult">Device::VerifyResult</doc:ref> are:
148 <doc:item>
149 <doc:term>verify-no-match</doc:term>
150 <doc:definition>
151 The verification did not match, <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
152 </doc:definition>
153 </doc:item>
154 <doc:item>
155 <doc:term>verify-match</doc:term>
156 <doc:definition>
157 The verification succeeded, <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
158 </doc:definition>
159 </doc:item>
160 <doc:item>
161 <doc:term>verify-retry-scan</doc:term>
162 <doc:definition>
163 The user should retry scanning their finger, the verification is still ongoing.
164 </doc:definition>
165 </doc:item>
166 <doc:item>
167 <doc:term>verify-swipe-too-short</doc:term>
168 <doc:definition>
169 The user's swipe was too short. The user should retry scanning their finger, the verification is still ongoing.
170 </doc:definition>
171 </doc:item>
172 <doc:item>
173 <doc:term>verify-finger-not-centered</doc:term>
174 <doc:definition>
175 The user's finger was not centered on the reader. The user should retry scanning their finger, the verification is still ongoing.
176 </doc:definition>
177 </doc:item>
178 <doc:item>
179 <doc:term>verify-remove-and-retry</doc:term>
180 <doc:definition>
181 The user should remove their finger from the reader and retry scanning their finger, the verification is still ongoing.
182 </doc:definition>
183 </doc:item>
184 <doc:item>
185 <doc:term>verify-disconnected</doc:term>
186 <doc:definition>
187 The device was disconnected during the verification, no other actions should be taken, and you shouldn't use the device any more.
188 </doc:definition>
189 </doc:item>
190 <doc:item>
191 <doc:term>verify-unknown-error</doc:term>
192 <doc:definition>
193 An unknown error occurred (usually a driver problem), <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
194 </doc:definition>
195 </doc:item>
196 </doc:list>
197 </doc:para>
198
199 <doc:title id="enroll-statuses">
200 Enroll Statuses
201 </doc:title>
202 <doc:para>
203 <doc:list>
204 Possible values for the result passed through <doc:ref type="signal" to="Device::EnrollResult">Device::EnrollResult</doc:ref> are:
205 <doc:item>
206 <doc:term>enroll-completed</doc:term>
207 <doc:definition>
208 The enrollment successfully completed, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
209 </doc:definition>
210 </doc:item>
211 <doc:item>
212 <doc:term>enroll-failed</doc:term>
213 <doc:definition>
214 The enrollment failed, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
215 </doc:definition>
216 </doc:item>
217 <doc:item>
218 <doc:term>enroll-stage-passed</doc:term>
219 <doc:definition>
220 One stage of the enrollment passed, the enrollment is still ongoing.
221 </doc:definition>
222 </doc:item>
223 <doc:item>
224 <doc:term>enroll-retry-scan</doc:term>
225 <doc:definition>
226 The user should retry scanning their finger, the enrollment is still ongoing.
227 </doc:definition>
228 </doc:item>
229 <doc:item>
230 <doc:term>enroll-swipe-too-short</doc:term>
231 <doc:definition>
232 The user's swipe was too short. The user should retry scanning their finger, the enrollment is still ongoing.
233 </doc:definition>
234 </doc:item>
235 <doc:item>
236 <doc:term>enroll-finger-not-centered</doc:term>
237 <doc:definition>
238 The user's finger was not centered on the reader. The user should retry scanning their finger, the enrollment is still ongoing.
239 </doc:definition>
240 </doc:item>
241 <doc:item>
242 <doc:term>enroll-remove-and-retry</doc:term>
243 <doc:definition>
244 The user should remove their finger from the reader and retry scanning their finger, the enrollment is still ongoing.
245 </doc:definition>
246 </doc:item>
247 <doc:item>
248 <doc:term>enroll-data-full</doc:term>
249 <doc:definition>
250 No further prints can be enrolled on this device, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
251
252 <doc:ref type="method" to="DeleteEnrolledFinger">Delete other prints</doc:ref> from the device first to continue
253 (e.g. from other users). Note that old prints or prints from other operating systems may be deleted automatically
254 to resolve this error without any notification.
255 </doc:definition>
256 </doc:item>
257 <doc:item>
258 <doc:term>enroll-duplicate</doc:term>
259 <doc:definition>
260 The print has already been enrolled, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
261
262 The user should enroll a different finger, or delete the print that has been enrolled already.
263 This print may be enrolled for a different user.
264 Note that an old duplicate (e.g. from a previous install) will be automatically garbage collected and should not cause any issues.
265 </doc:definition>
266 </doc:item>
267 <doc:item>
268 <doc:term>enroll-disconnected</doc:term>
269 <doc:definition>
270 The device was disconnected during the enrollment, no other actions should be taken, and you shouldn't use the device any more.
271
272 </doc:definition>
273 </doc:item>
274 <doc:item>
275 <doc:term>enroll-unknown-error</doc:term>
276 <doc:definition>
277 An unknown error occurred (usually a driver problem), <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
278
279 </doc:definition>
280 </doc:item>
281 </doc:list>
282 </doc:para>
283 </doc:doc>
284
285 <!-- ************************************************************ -->
286
287 <method name="ListEnrolledFingers">
288 <arg type="s" name="username" direction="in">
289 <doc:doc><doc:summary>The username for whom to list the enrolled fingerprints. See <doc:ref type="description" to="usernames">Usernames</doc:ref>.</doc:summary></doc:doc>
290 </arg>
291 <arg type="as" name="enrolled_fingers" direction="out">
292 <doc:doc><doc:summary>An array of strings representing the enrolled fingerprints. See <doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.</doc:summary></doc:doc>
293 </arg>
294 <doc:doc>
295 <doc:description>
296 <doc:para>
297 List all the enrolled fingerprints for the chosen user.
298 </doc:para>
299 </doc:description>
300
301 <doc:errors>
302 <doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
303 <doc:error name="&ERROR_NO_ENROLLED_PRINTS;">if the chosen user doesn't have any fingerprints enrolled</doc:error>
304 </doc:errors>
305 </doc:doc>
306 </method>
307
308 <!-- ************************************************************ -->
309
310 <method name="DeleteEnrolledFingers">
311 <arg type="s" name="username" direction="in">
312 <doc:doc><doc:summary>The username for whom to delete the enrolled fingerprints. See <doc:ref type="description" to="usernames">Usernames</doc:ref>.</doc:summary></doc:doc>
313 </arg>
314 <doc:doc>
315 <doc:description>
316 <doc:para>
317 Delete all the enrolled fingerprints for the chosen user.
318 </doc:para>
319 <doc:para>
320 This call only exists for compatibility reasons, you should instead claim the device using
321 <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref> and then call
322 <doc:ref type="method" to="DeleteEnrolledFingers2">DeleteEnrolledFingers2</doc:ref> or
323 <doc:ref type="method" to="DeleteEnrolledFinger">DeleteEnrolledFinger</doc:ref>.
324 </doc:para>
325 </doc:description>
326
327 <doc:errors>
328 <doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
329 <doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
330 </doc:errors>
331 </doc:doc>
332 </method>
333
334 <!-- ************************************************************ -->
335
336 <method name="DeleteEnrolledFingers2">
337 <doc:doc>
338 <doc:description>
339 <doc:para>
340 Delete all the enrolled fingerprints for the user currently claiming the device with <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>.
341 </doc:para>
342 </doc:description>
343
344 <doc:errors>
345 <doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
346 <doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
347 </doc:errors>
348 </doc:doc>
349 </method>
350
351 <!-- ************************************************************ -->
352
353 <method name="DeleteEnrolledFinger">
354 <arg type="s" name="finger_name" direction="in">
355 <doc:doc>
356 <doc:summary>A string representing the finger to delete. See
357 <doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.
358 Note that "any" is not a valid finger name for this method.</doc:summary>
359 </doc:doc>
360 </arg>
361 <doc:doc>
362 <doc:description>
363 <doc:para>
364 Delete the enrolled fingerprint for the user currently claiming the device with <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>.
365 </doc:para>
366 </doc:description>
367
368 <doc:errors>
369 <doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
370 <doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
371 <doc:error name="&ERROR_INVALID_FINGERNAME;">if the finger name passed is invalid</doc:error>
372 <doc:error name="&ERROR_NO_ENROLLED_PRINTS;">if the chosen user doesn't have the requsted fingerprint enrolled</doc:error>
373 <doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
374 </doc:errors>
375 </doc:doc>
376 </method>
377
378 <!-- ************************************************************ -->
379
380 <method name="Claim">
381 <arg type="s" name="username" direction="in">
382 <doc:doc><doc:summary>The username for whom to claim the device. See <doc:ref type="description" to="usernames">Usernames</doc:ref>.</doc:summary></doc:doc>
383 </arg>
384 <doc:doc>
385 <doc:description>
386 <doc:para>
387 Claim the device for the chosen user.
388 </doc:para>
389 </doc:description>
390
391 <doc:errors>
392 <doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
393 <doc:error name="&ERROR_ALREADY_IN_USE;">if the device is already claimed</doc:error>
394 <doc:error name="&ERROR_INTERNAL;">if the device couldn't be claimed</doc:error>
395 </doc:errors>
396 </doc:doc>
397 </method>
398
399 <!-- ************************************************************ -->