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
This commit is contained in:
Simon Tischer 2021-11-14 10:09:12 +00:00 committed by Carsten Haitzler (Rasterman)
parent 1b02c4c6ab
commit 60eb60aa75
65 changed files with 4998 additions and 0 deletions

View File

@ -0,0 +1,2 @@
Simon "jf_simon" Tischer simon@t-tischer.de
Marcel "bu5hm4n" Hollerbach

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Fingerprint Password Settings
Name[de]=Fingerprint Passwort Einstellungen
Icon=enlightenment_fprint
Exec=enlightenment_fprint
Comment=Tool to set up or modify fingerprint authentication
GenericName=GUI for Fingerprint Authentication
Categories=Settings;DesktopSettings;
StartupWMClass=enlightenment_fprint

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,6 @@
install_data('enlightenment_fprint.desktop',
install_dir: join_paths(dir_data, 'applications')
)
install_data('enlightenment_fprint.png',
install_dir: join_paths(dir_data, 'icons/hicolor/128x128/apps')
)

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="e-fprint-gui.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1377"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-224.63902"
inkscape:cy="-27.03533"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<circle
r="137.70493"
cy="149.5"
cx="149.5"
id="path5067"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="114.7541"
sodipodi:rx="114.7541"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5077"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="114.7541"
sodipodi:ry="114.7541"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,2 @@
subdir('desktop')
subdir('themes')

View File

@ -0,0 +1,855 @@
images {
image: "hands.png" COMP;
image: "left_hand.png" COMP;
image: "right_hand.png" COMP;
image: "fingerprint_icon-160.png" COMP;
set { name: "fingerprint_icon";
image { image: "fingerprint_icon-160.png" COMP; size: 81 81 16000 16000; }
image { image: "fingerprint_icon-080.png" COMP; size: 41 41 80 80; }
image { image: "fingerprint_icon-040.png" COMP; size: 0 0 40 40; }
}
#define IM140(_name) \
set { name: _name; \
image { image: _name"-560.png" COMP; size: 281 281 16000 16000; } \
image { image: _name"-280.png" COMP; size: 141 141 280 280; } \
image { image: _name"-140.png" COMP; size: 0 0 140 140; } \
}
IM140("1_0")
IM140("1_1")
IM140("1_1_failed")
IM140("1_2")
IM140("1_2_failed")
IM140("1_3")
IM140("1_3_failed")
IM140("1_4")
IM140("1_4_failed")
IM140("1_5")
IM140("1_5_failed")
}
collections {
base_scale: 1.0;
group { "hands";
parts {
// LEFT HAND
image { "hands";
scale: 1;
desc { "default";
min: 650 400;
max: 650 400;
image.normal: "hands.png";
color_class: ":fg";
}
}
image { "left-little-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (35/609) (125/375);
rel2.relative: (35/609) (125/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-little-finger";
desc { "default";
rel.to: "left-little-finger";
}
}
image { "left-ring-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (92/609) (82/375);
rel2.relative: (92/609) (82/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-ring-finger";
desc { "default";
rel.to: "left-ring-finger";
}
}
image { "left-middle-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (150/609) (51/375);
rel2.relative: (150/609) (51/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-middle-finger";
desc { "default";
rel.to: "left-middle-finger";
}
}
image { "left-index-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (208/609) (75/375);
rel2.relative: (208/609) (75/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-index-finger";
desc { "default";
rel.to: "left-index-finger";
}
}
image { "left-thumb";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (265/609) (209/375);
rel2.relative: (265/609) (209/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-thumb";
desc { "default";
rel.to: "left-thumb";
}
}
// RIGHT HAND
image { "right-little-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (341/609) (209/375);
rel2.relative: (341/609) (209/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-little-finger";
desc { "default";
rel.to: "right-little-finger";
}
}
image { "right-ring-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (399/609) (75/375);
rel2.relative: (399/609) (75/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-ring-finger";
desc { "default";
rel.to: "right-ring-finger";
}
}
image { "right-middle-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (458/609) (51/375);
rel2.relative: (458/609) (51/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-middle-finger";
desc { "default";
rel.to: "right-middle-finger";
}
}
image { "right-index-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (515/609) (82/375);
rel2.relative: (515/609) (82/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-index-finger";
desc { "default";
rel.to: "right-index-finger";
}
}
image { "right-thumb";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "hands";
rel1.relative: (572/609) (125/375);
rel2.relative: (572/609) (125/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-thumb";
desc { "default";
rel.to: "right-thumb";
}
}
}
programs {
program { signal: "enrolled_finger"; source: "*";
script {
set_state(get_part_id(src), "enrolled", 0.0);
}
}
program { signal: "reset_finger"; source: "reset_finger";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2;
target: "left-little-finger";
target: "left-ring-finger";
target: "left-middle-finger";
target: "left-index-finger";
target: "left-thumb";
target: "right-little-finger";
target: "right-ring-finger";
target: "right-middle-finger";
target: "right-index-finger";
target: "right-thumb";
}
}
}
group { "right_hand";
parts {
image { "right_hand";
scale: 1;
desc { "default";
min: 650 400;
max: 650 400;
image.normal: "right_hand.png";
color_class: ":fg";
}
}
image { "right-little-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "right_hand";
rel1.relative: (422/609) (125/375);
rel2.relative: (422/609) (125/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-little-finger";
desc { "default";
rel.to: "right-little-finger";
}
}
image { "right-ring-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "right_hand";
rel1.relative: (365/609) (82/375);
rel2.relative: (365/609) (82/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-ring-finger";
desc { "default";
rel.to: "right-ring-finger";
}
}
image { "right-middle-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "right_hand";
rel1.relative: (307/609) (51/375);
rel2.relative: (307/609) (51/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-middle-finger";
desc { "default";
rel.to: "right-middle-finger";
}
}
image { "right-index-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "right_hand";
rel1.relative: (250/609) (75/375);
rel2.relative: (250/609) (75/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-index-finger";
desc { "default";
rel.to: "right-index-finger";
}
}
image { "right-thumb";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "right_hand";
rel1.relative: (192/609) (209/375);
rel2.relative: (192/609) (209/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_right-thumb";
desc { "default";
rel.to: "right-thumb";
}
}
// LIST SWALLOW
swallow {"swallow_hand_switch";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
rel1.to_y: "right_hand";
rel1.relative: 0.6 0.0;
}
}
}
programs {
program { signal: "enrolled_finger"; source: "*";
script {
set_state(get_part_id(src), "enrolled", 0.0);
}
}
program { signal: "reset_finger"; source: "reset_finger";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2;
target: "right-little-finger";
target: "right-ring-finger";
target: "right-middle-finger";
target: "right-index-finger";
target: "right-thumb";
}
}
}
group { "left_hand";
parts {
image { "left_hand";
scale: 1;
desc { "default";
min: 650 400;
max: 650 400;
image.normal: "left_hand.png";
color_class: ":fg";
}
}
image { "left-little-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "left_hand";
rel1.relative: (186/609) (125/375);
rel2.relative: (186/609) (125/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-little-finger";
desc { "default";
rel.to: "left-little-finger";
}
}
image { "left-ring-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "left_hand";
rel1.relative: (243/609) (82/375);
rel2.relative: (243/609) (82/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-ring-finger";
desc { "default";
rel.to: "left-ring-finger";
}
}
image { "left-middle-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "left_hand";
rel1.relative: (300/609) (51/375);
rel2.relative: (300/609) (51/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-middle-finger";
desc { "default";
rel.to: "left-middle-finger";
}
}
image { "left-index-finger";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "left_hand";
rel1.relative: (358/609) (75/375);
rel2.relative: (358/609) (75/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-index-finger";
desc { "default";
rel.to: "left-index-finger";
}
}
image { "left-thumb";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
image.normal: "fingerprint_icon";
rel.to: "left_hand";
rel1.relative: (416/609) (209/375);
rel2.relative: (416/609) (209/375);
color_class: ":bg-light";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_left-thumb";
desc { "default";
rel.to: "left-thumb";
}
}
// LIST SWALLOW
swallow {"swallow_hand_switch";
scale: 1;
desc { "default";
min: 40 40;
max: 40 40;
rel1.to_y: "left_hand";
rel1.relative: 0.6 0.0;
}
}
}
programs {
program { signal: "enrolled_finger"; source: "*";
script {
set_state(get_part_id(src), "enrolled", 0.0);
}
}
program { signal: "reset_finger"; source: "reset_finger";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2;
target: "left-little-finger";
target: "left-ring-finger";
target: "left-middle-finger";
target: "left-index-finger";
target: "left-thumb";
}
}
}
group { "finger";
parts {
swallow {"swallow_select-finger-left";
scale: 1;
desc { "default";
align: 0 0.5;
min: 140 140;
max: 140 140;
}
}
image { "fingerprint_icon";
scale: 1;
desc { "default";
align: 0.0 0.0;
min: 200 200;
max: 200 200;
image.normal: "1_0";
rel1.to_x: "swallow_select-finger-left";
rel1.relative: 1.0 0.0;
color_class: ":fg";
}
desc { "enrolled";
inherit: "default";
color_class: ":success";
}
}
swallow {"swallow_select-finger";
scale: 1;
desc { "default";
align: 0.0 0.0;
min: 200 200;
max: 200 200;
rel1.to_x: "swallow_select-finger-left";
rel1.relative: 1.0 0.0;
}
}
swallow {"swallow_select-finger-right";
scale: 1;
desc { "default";
align: 1.0 0.5;
min: 140 140;
max: 140 140;
rel1.to_x: "fingerprint_icon";
rel1.relative: 1.0 0.0;
}
}
}
programs {
program { signal: "enrolled_finger"; source: "enrolled_finger";
script {
set_state(get_part_id("fingerprint_icon"), "enrolled", 0.0);
}
}
program { signal: "not_enrolled_finger"; source: "not_enrolled_finger";
script {
set_state(get_part_id("fingerprint_icon"), "default", 0.0);
}
}
}
}
group { "enroll";
parts {
image { "0";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
image.normal: "1_0";
color_class: ":fg";
}
desc { "failed";
inherit: "default";
color_class: ":success";
}
}
image { "1";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
visible: 0;
image.normal: "1_1";
color_class: ":fg";
}
desc { "success";
inherit: "default";
visible: 1;
color_class: ":success";
}
desc { "failed";
inherit: "default";
visible: 1;
image.normal: "1_1_failed";
color_class: ":selected-alt";
}
}
image { "2";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
visible: 0;
image.normal: "1_2";
color_class: ":fg";
}
desc { "success";
inherit: "default";
visible: 1;
color_class: ":success";
}
desc { "failed";
inherit: "default";
visible: 1;
image.normal: "1_2_failed";
color_class: ":selected-alt";
}
}
image { "3";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
visible: 0;
image.normal: "1_3";
color_class: ":fg";
}
desc { "success";
inherit: "default";
visible: 1;
color_class: ":success";
}
desc { "failed";
inherit: "default";
visible: 1;
image.normal: "1_3_failed";
color_class: ":selected-alt";
}
}
image { "4";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
visible: 0;
image.normal: "1_4";
color_class: ":fg";
}
desc { "success";
inherit: "default";
visible: 1;
color_class: ":success";
}
desc { "failed";
inherit: "default";
visible: 1;
image.normal: "1_4_failed";
color_class: ":selected-alt";
}
}
image { "5";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
visible: 0;
image.normal: "1_5";
color_class: ":fg";
}
desc { "success";
inherit: "default";
visible: 1;
color_class: ":success";
}
desc { "failed";
inherit: "default";
visible: 1;
image.normal: "1_5_failed";
color_class: ":selected-alt";
}
}
}
programs {
program { signal: "success"; source: "*";
script {
set_state(get_part_id(src), "success", 0.0);
}
}
program { signal: "failed"; source: "*";
script {
set_state(get_part_id(src), "failed", 0.0);
}
}
program { signal: "enrolled__failed"; source: "enrolled__failed";
action: STATE_SET "failed" 0.0;
transition: LINEAR 0.2;
target: "0";
}
program { signal: "enrolled__failed"; source: "enrolled__failed";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.2;
target: "1";
target: "2";
target: "3";
target: "4";
target: "5";
}
}
}
group { "verify";
parts {
image { "0";
scale: 1;
desc { "default";
min: 140 140;
max: 140 140;
image.normal: "1_0";
color_class: ":fg";
}
desc { "success";
inherit: "default";
color_class: ":success";
}
desc { "failed";
inherit: "default";
color_class: ":selected-alt";
}
}
}
programs {
program { signal: "success"; source: "success";
action: STATE_SET "success" 0.0;
transition: LINEAR 0.2;
target: "0";
after: "reset1";
}
program { name: "reset1";
action: STATE_SET "default" 0.0;
transition: ACCEL 4.0;
target: "0";
}
program { signal: "failed"; source: "failed";
transition: LINEAR 0.2;
action: STATE_SET "failed" 0.0;
target: "0";
after: "reset";
}
program { name: "reset";
action: STATE_SET "default" 0.0;
transition: ACCEL 2.0;
target: "0";
}
}
}
group { "icon";
parts {
image { "0";
scale: 1;
desc { "default";
image.normal: "1_0";
color_class: ":success";
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_0.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1377"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-88.970814"
inkscape:cy="-27.03533"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<circle
r="137.70493"
cy="149.5"
cx="149.5"
id="path5067"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="114.7541"
sodipodi:rx="114.7541"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5077"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="114.7541"
sodipodi:ry="114.7541"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_1.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.4185125"
inkscape:cx="123.01619"
inkscape:cy="100.10487"
inkscape:window-x="242"
inkscape:window-y="493"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_1_failed.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="15.238095"
inkscape:cy="97.327189"
inkscape:window-x="997"
inkscape:window-y="309"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_2.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-187.28111"
inkscape:cy="206.45161"
inkscape:window-x="475"
inkscape:window-y="155"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_2_failed.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-175.48387"
inkscape:cy="223.16436"
inkscape:window-x="173"
inkscape:window-y="27"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_3.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-190.23041"
inkscape:cy="196.62058"
inkscape:window-x="740"
inkscape:window-y="375"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_3_failed.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-206.94316"
inkscape:cy="174.00922"
inkscape:window-x="155"
inkscape:window-y="31"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_4.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-222.67281"
inkscape:cy="228.07988"
inkscape:window-x="373"
inkscape:window-y="197"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="114.7541"
sodipodi:rx="114.7541"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5077"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="114.7541"
sodipodi:ry="114.7541"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_4_failed.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-209.89247"
inkscape:cy="234.9616"
inkscape:window-x="152"
inkscape:window-y="86"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="114.7541"
sodipodi:rx="114.7541"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5077"
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" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="114.7541"
sodipodi:ry="114.7541"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_5.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-214.80799"
inkscape:cy="172.04301"
inkscape:window-x="3323"
inkscape:window-y="375"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<circle
r="137.70493"
cy="149.5"
cx="149.5"
id="path5067"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="22.950819"
sodipodi:rx="22.950819"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="45.901638"
sodipodi:ry="45.901638"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="68.852463"
sodipodi:rx="68.852463"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="91.803276"
sodipodi:ry="91.803276"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="114.7541"
sodipodi:rx="114.7541"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5077"
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" />
<path
d="m 185.86798,177.5059 a 45.901638,45.901638 0 0 1 -43.60287,17.32198"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="45.901638"
sodipodi:rx="45.901638"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="68.852463"
sodipodi:ry="68.852463"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 165.26686,82.477109 a 68.852463,68.852463 0 0 1 40.3118,27.074851" />
<path
d="M 206.44965,77.495984 A 91.803276,91.803276 0 0 1 230.78503,192.16832"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="91.803276"
sodipodi:rx="91.803276"
sodipodi:cy="149.5"
sodipodi:cx="149.5"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="149.5"
sodipodi:cy="149.5"
sodipodi:rx="114.7541"
sodipodi:ry="114.7541"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="M 58.547846,79.527087 A 114.7541,114.7541 0 0 1 92.047558,50.163603" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="300"
height="300"
viewBox="0 0 300 300"
sodipodi:docname="1_5_failed.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/i-140.png"
inkscape:export-xdpi="44.799999"
inkscape:export-ydpi="44.799999"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1262"
inkscape:window-height="820"
id="namedview4"
showgrid="true"
inkscape:zoom="1.0171875"
inkscape:cx="-205.96006"
inkscape:cy="212.35023"
inkscape:window-x="3670"
inkscape:window-y="354"
inkscape:window-maximized="0"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<circle
r="137.70493"
cy="149.5"
cx="149.5"
id="path5067"
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" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,204 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
width="80"
height="80"
viewBox="0 0 80 80"
sodipodi:docname="fingerprint_icon.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
inkscape:export-filename="/home/raster/C/th-efl/th/img/ic/fingerprint-040.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6">
<mask
maskUnits="userSpaceOnUse"
id="mask947">
<rect
style="opacity:1;fill:#a0a0a0;fill-opacity:1;stroke-width:3.96122;stroke-linecap:round;stroke-linejoin:round"
id="rect949"
width="60"
height="40"
x="10"
y="5" />
</mask>
</defs>
<sodipodi:namedview
inkscape:document-rotation="0"
pagecolor="#404040"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1377"
id="namedview4"
showgrid="true"
inkscape:zoom="5.7540814"
inkscape:cx="37.451677"
inkscape:cy="36.930308"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
showguides="false"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-others="false"
inkscape:snap-nodes="true"
inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid837" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10">
<circle
r="30"
cy="40"
cx="40"
id="path5067"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="4.9720722"
sodipodi:start="0.65163863"
sodipodi:ry="5"
sodipodi:rx="5"
sodipodi:cy="40"
sodipodi:cx="40"
sodipodi:type="arc"
id="path5069"
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" />
<path
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"
id="path5071"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="10"
sodipodi:ry="10"
sodipodi:start="2.6954195"
sodipodi:end="5.9000004"
sodipodi:open="true"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="3.7435892"
sodipodi:start="0.064467936"
sodipodi:ry="15"
sodipodi:rx="15"
sodipodi:cy="40"
sodipodi:cx="40"
sodipodi:type="arc"
id="path5073"
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" />
<path
sodipodi:open="true"
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"
id="path5075"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="20"
sodipodi:ry="20"
sodipodi:start="1.4555675"
sodipodi:end="4.4180899"
sodipodi:arc-type="arc"
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" />
<path
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"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="2.968721"
sodipodi:start="4.9326345"
sodipodi:ry="25"
sodipodi:rx="25"
sodipodi:cy="40"
sodipodi:cx="40"
sodipodi:type="arc"
id="path5077"
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" />
<path
d="m 47.923024,46.101286 a 10,10 0 0 1 -9.499196,3.773717"
sodipodi:arc-type="arc"
sodipodi:open="true"
sodipodi:end="1.7290736"
sodipodi:start="0.65622285"
sodipodi:ry="10"
sodipodi:rx="10"
sodipodi:cy="40"
sodipodi:cx="40"
sodipodi:type="arc"
id="path5079"
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" />
<path
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"
id="path5081"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="15"
sodipodi:ry="15"
sodipodi:start="4.9434339"
sodipodi:end="5.6642139"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 43.434922,25.398585 a 15,15 0 0 1 8.782213,5.898449" />
<path
d="m 52.406889,24.31341 a 20,20 0 0 1 5.301636,24.982189"
sodipodi:arc-type="arc"
sodipodi:end="0.48338606"
sodipodi:start="5.3815708"
sodipodi:ry="20"
sodipodi:rx="20"
sodipodi:cy="40"
sodipodi:cx="40"
sodipodi:type="arc"
id="path5083"
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"
sodipodi:open="true" />
<path
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"
id="path5085"
sodipodi:type="arc"
sodipodi:cx="40"
sodipodi:cy="40"
sodipodi:rx="25"
sodipodi:ry="25"
sodipodi:start="3.7973554"
sodipodi:end="4.1880314"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 20.185423,24.755901 a 25,25 0 0 1 7.298152,-6.397045" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,12 @@
cmd = [ edje_cmd,
'-id', join_paths(meson.current_source_dir(), 'images'),
'@INPUT@', '@OUTPUT@'
]
src = 'enlightenment_fprint'
custom_target(src + '.edj',
input : src + '.edc',
output : src + '.edj',
command : cmd,
install_dir: join_paths(dir_data, proj, 'themes'),
install : true
)

View File

@ -0,0 +1,112 @@
##### project
#project('e-fprint-gui', 'c',
# version : '0.1',
# license : 'BSD 2 clause',
# default_options: [ 'c_std=gnu99' ],
# meson_version : '>= 0.40.0')
#base_url = 'https://github.com/jf-simon/e-fprint-gui'
##### convenience variables for later
proj = meson.project_name()
ver = meson.project_version()
cfg = configuration_data()
##### dependencies
efl_version = '>= 1.19.0'
elm = dependency('elementary', required: true, version: efl_version)
edje = dependency('edje', required: true, version: efl_version)
ecore = dependency('ecore', required: true, version: efl_version)
ecorex = dependency('ecore-x', required: true, version: efl_version)
depe = dependency('enlightenment', required: false)
#curl_dep = dependency('libcurl', version : '>= 7.35.0', required: true)
##### check for windows dependency
#if build_machine.system() == 'windows'
# win = dependency('evil', version: efl_version)
#endif
##### dir locations
#dir_prefix = get_option('prefix')
#dir_bin = join_paths(dir_prefix, get_option('bindir'))
#dir_lib = join_paths(dir_prefix, get_option('libdir'))
#dir_data = join_paths(dir_prefix, get_option('datadir'))
#dir_locale = join_paths(dir_prefix, get_option('localedir'))
##### config.h
#cfg.set_quoted('PACKAGE' , proj)
#cfg.set_quoted('PACKAGE_NAME' , proj)
#cfg.set_quoted('PACKAGE_VERSION' , ver)
#cfg.set_quoted('PACKAGE_STRING' , proj + ' ' + ver)
#cfg.set_quoted('PACKAGE_URL' , base_url + proj)
#cfg.set_quoted('PACKAGE_BIN_DIR' , dir_bin)
#cfg.set_quoted('PACKAGE_LIB_DIR' , dir_lib)
#cfg.set_quoted('BINDIR' , dir_bin)
#cfg.set_quoted('DATADIR' , dir_data)
#cfg.set_quoted('PACKAGE_DATA_DIR' , join_paths(dir_data, proj))
#cfg.set_quoted('LOCALEDIR' , dir_locale)
#add_global_arguments('-DPACKAGE_BIN_DIR="@0@"'.format(dir_bin), language: 'c')
#add_global_arguments('-DPACKAGE_LIB_DIR="@0@"'.format(dir_lib), language: 'c')
#add_global_arguments('-DPACKAGE_DATA_DIR="@0@"'.format(join_paths(dir_data, proj)), language: 'c')
##### get C compiler
#cc = meson.get_compiler('c')
##### get edje command
#edje_cmd = join_paths(edje.get_pkgconfig_variable('prefix'),
# 'bin', 'edje_cc')
##### Check for windows
#if build_machine.system() == 'windows'
# cfg.set ('_WIN32' , 1)
#endif
##### Check for arpa/inet and netinet/in.h
#if cc.has_header('arpa/inet.h') == true
# cfg.set ('HAVE_ARPA_INET_H' , 1)
#endif
#if cc.has_header('netinet/in.h') == true
# cfg.set ('HAVE_NETINET_IN_H' , 1)
#endif
#if exif.found() == true
# cfg.set ('HAVE_LIBEXIF' , 1)
#endif
#if depe.found() == true
# build_gadget = true
# cfg.set ('HAVE_E' , 1)
#endif
###### translations
#use_translations = false
#depnls = []
#intl_lib = cc.find_library('intl', required: false)
#if intl_lib.found()
# cfg.set('HAVE_GETTEXT', 1)
# cfg.set('ENABLE_NLS', 1)
# depnls = [intl_lib]
# use_translations = true
#else
# gettext_code = '''
# #include <libintl.h>
# int main(int argc, char *argv[]) {
# (void)ngettext("", "", 0);
# return 0;
# }
# '''
# if cc.links(gettext_code)
# cfg.set('HAVE_GETTEXT', 1)
# cfg.set('ENABLE_NLS', 1)
# use_translations = true
# endif
#endif
#configure_file(output: 'config.h', configuration: cfg)
#install_data('AUTHORS',
# install_dir: join_paths(dir_data, 'e-fprint-gui'))
#if use_translations
# subdir('po')
#endif
eldbus_codegen = find_program('eldbus-codegen')
subdir('src')
subdir('data')

View File

@ -0,0 +1,644 @@
<!DOCTYPE node PUBLIC
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
<!ENTITY ERROR_CLAIM_DEVICE "net.reactivated.Fprint.Error.ClaimDevice">
<!ENTITY ERROR_ALREADY_IN_USE "net.reactivated.Fprint.Error.AlreadyInUse">
<!ENTITY ERROR_INTERNAL "net.reactivated.Fprint.Error.Internal">
<!ENTITY ERROR_PERMISSION_DENIED "net.reactivated.Fprint.Error.PermissionDenied">
<!ENTITY ERROR_NO_ENROLLED_PRINTS "net.reactivated.Fprint.Error.NoEnrolledPrints">
<!ENTITY ERROR_NO_ACTION_IN_PROGRESS "net.reactivated.Fprint.Error.NoActionInProgress">
<!ENTITY ERROR_INVALID_FINGERNAME "net.reactivated.Fprint.Error.InvalidFingername">
<!ENTITY ERROR_PRINTS_NOT_DELETED "net.reactivated.Fprint.Error.PrintsNotDeleted">
<!ENTITY ERROR_PRINTS_NOT_DELETED_FROM_DEVICE "net.reactivated.Fprint.Error.PrintsNotDeletedFromDevice">
]>
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<interface name="net.reactivated.Fprint.Device">
<doc:doc>
<doc:title id="polkit-integration">
PolicyKit integration
</doc:title>
<doc:para>
fprintd uses PolicyKit to check whether users are allowed to access fingerprint data, or the
fingerprint readers itself.
<doc:list>
<doc:item>
<doc:term>net.reactivated.fprint.device.verify</doc:term>
<doc:definition>
Whether the user is allowed to verify fingers against saved fingerprints.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>net.reactivated.fprint.device.enroll</doc:term>
<doc:definition>
Whether the user is allowed to enroll new fingerprints.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>net.reactivated.fprint.device.setusername</doc:term>
<doc:definition>
Whether the user is allowed to query, verify, or enroll fingerprints for users other than itself.
</doc:definition>
</doc:item>
</doc:list>
</doc:para>
<doc:title id="usernames">
Usernames
</doc:title>
<doc:para>
When a username argument is used for a method, a PolicyKit check is done on the
<doc:tt>net.reactivated.fprint.device.setusername</doc:tt> PolicyKit
action to see whether the user the client is running as is allowed to access data from other users.
</doc:para>
<doc:para>
By default, only root is allowed to access fingerprint data for users other than itself. For a normal user,
it is recommended that you use an empty string for the username, which will mean "the client the user is
running as".
</doc:para>
<doc:para>
See <doc:ref type="description" to="polkit-integration">PolicyKit integration</doc:ref>.
</doc:para>
<doc:title id="fingerprint-names">
Fingerprint names
</doc:title>
<doc:para>
When a finger name argument is used for a method, it refers to either a single finger, or
"any" finger. See the list of possible values below:
<doc:list>
<doc:item>
<doc:term>left-thumb</doc:term>
<doc:definition>
Left thumb
</doc:definition>
</doc:item>
<doc:item>
<doc:term>left-index-finger</doc:term>
<doc:definition>
Left index finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>left-middle-finger</doc:term>
<doc:definition>
Left middle finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>left-ring-finger</doc:term>
<doc:definition>
Left ring finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>left-little-finger</doc:term>
<doc:definition>
Left little finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>right-thumb</doc:term>
<doc:definition>
Right thumb
</doc:definition>
</doc:item>
<doc:item>
<doc:term>right-index-finger</doc:term>
<doc:definition>
Right index finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>right-middle-finger</doc:term>
<doc:definition>
Right middle finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>right-ring-finger</doc:term>
<doc:definition>
Right ring finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>right-little-finger</doc:term>
<doc:definition>
Right little finger
</doc:definition>
</doc:item>
<doc:item>
<doc:term>any</doc:term>
<doc:definition>
Any finger. This is only used for <doc:ref type="method" to="Device.VerifyStart">Device.VerifyStart</doc:ref>
(select the first finger with a fingerprint associated, or all the fingerprints available for the user when
the device supports it) and <doc:ref type="signal" to="Device::VerifyFingerSelected">Device::VerifyFingerSelected</doc:ref>
(any finger with an associated fingerprint can be used).
</doc:definition>
</doc:item>
</doc:list>
</doc:para>
<doc:title id="verify-statuses">
Verify Statuses
</doc:title>
<doc:para>
<doc:list>
Possible values for the result passed through <doc:ref type="signal" to="Device::VerifyResult">Device::VerifyResult</doc:ref> are:
<doc:item>
<doc:term>verify-no-match</doc:term>
<doc:definition>
The verification did not match, <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-match</doc:term>
<doc:definition>
The verification succeeded, <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-retry-scan</doc:term>
<doc:definition>
The user should retry scanning their finger, the verification is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-swipe-too-short</doc:term>
<doc:definition>
The user's swipe was too short. The user should retry scanning their finger, the verification is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-finger-not-centered</doc:term>
<doc:definition>
The user's finger was not centered on the reader. The user should retry scanning their finger, the verification is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-remove-and-retry</doc:term>
<doc:definition>
The user should remove their finger from the reader and retry scanning their finger, the verification is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-disconnected</doc:term>
<doc:definition>
The device was disconnected during the verification, no other actions should be taken, and you shouldn't use the device any more.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>verify-unknown-error</doc:term>
<doc:definition>
An unknown error occurred (usually a driver problem), <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
</doc:list>
</doc:para>
<doc:title id="enroll-statuses">
Enroll Statuses
</doc:title>
<doc:para>
<doc:list>
Possible values for the result passed through <doc:ref type="signal" to="Device::EnrollResult">Device::EnrollResult</doc:ref> are:
<doc:item>
<doc:term>enroll-completed</doc:term>
<doc:definition>
The enrollment successfully completed, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-failed</doc:term>
<doc:definition>
The enrollment failed, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-stage-passed</doc:term>
<doc:definition>
One stage of the enrollment passed, the enrollment is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-retry-scan</doc:term>
<doc:definition>
The user should retry scanning their finger, the enrollment is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-swipe-too-short</doc:term>
<doc:definition>
The user's swipe was too short. The user should retry scanning their finger, the enrollment is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-finger-not-centered</doc:term>
<doc:definition>
The user's finger was not centered on the reader. The user should retry scanning their finger, the enrollment is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-remove-and-retry</doc:term>
<doc:definition>
The user should remove their finger from the reader and retry scanning their finger, the enrollment is still ongoing.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-data-full</doc:term>
<doc:definition>
No further prints can be enrolled on this device, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
<doc:ref type="method" to="DeleteEnrolledFinger">Delete other prints</doc:ref> from the device first to continue
(e.g. from other users). Note that old prints or prints from other operating systems may be deleted automatically
to resolve this error without any notification.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-duplicate</doc:term>
<doc:definition>
The print has already been enrolled, <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
The user should enroll a different finger, or delete the print that has been enrolled already.
This print may be enrolled for a different user.
Note that an old duplicate (e.g. from a previous install) will be automatically garbage collected and should not cause any issues.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-disconnected</doc:term>
<doc:definition>
The device was disconnected during the enrollment, no other actions should be taken, and you shouldn't use the device any more.
</doc:definition>
</doc:item>
<doc:item>
<doc:term>enroll-unknown-error</doc:term>
<doc:definition>
An unknown error occurred (usually a driver problem), <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref> should now be called.
</doc:definition>
</doc:item>
</doc:list>
</doc:para>
</doc:doc>
<!-- ************************************************************ -->
<method name="ListEnrolledFingers">
<arg type="s" name="username" direction="in">
<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>
</arg>
<arg type="as" name="enrolled_fingers" direction="out">
<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>
</arg>
<doc:doc>
<doc:description>
<doc:para>
List all the enrolled fingerprints for the chosen user.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_NO_ENROLLED_PRINTS;">if the chosen user doesn't have any fingerprints enrolled</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="DeleteEnrolledFingers">
<arg type="s" name="username" direction="in">
<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>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Delete all the enrolled fingerprints for the chosen user.
</doc:para>
<doc:para>
This call only exists for compatibility reasons, you should instead claim the device using
<doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref> and then call
<doc:ref type="method" to="DeleteEnrolledFingers2">DeleteEnrolledFingers2</doc:ref> or
<doc:ref type="method" to="DeleteEnrolledFinger">DeleteEnrolledFinger</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="DeleteEnrolledFingers2">
<doc:doc>
<doc:description>
<doc:para>
Delete all the enrolled fingerprints for the user currently claiming the device with <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="DeleteEnrolledFinger">
<arg type="s" name="finger_name" direction="in">
<doc:doc>
<doc:summary>A string representing the finger to delete. See
<doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.
Note that "any" is not a valid finger name for this method.</doc:summary>
</doc:doc>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Delete the enrolled fingerprint for the user currently claiming the device with <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
<doc:error name="&ERROR_INVALID_FINGERNAME;">if the finger name passed is invalid</doc:error>
<doc:error name="&ERROR_NO_ENROLLED_PRINTS;">if the chosen user doesn't have the requsted fingerprint enrolled</doc:error>
<doc:error name="&ERROR_PRINTS_NOT_DELETED;">if the fingerprint is not deleted from fprintd storage</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="Claim">
<arg type="s" name="username" direction="in">
<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>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Claim the device for the chosen user.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_ALREADY_IN_USE;">if the device is already claimed</doc:error>
<doc:error name="&ERROR_INTERNAL;">if the device couldn't be claimed</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="Release">
<doc:doc>
<doc:description>
<doc:para>
Release a device claimed with <doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="VerifyStart">
<arg type="s" name="finger_name" direction="in">
<doc:doc><doc:summary>A string representing the finger to verify. See <doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.</doc:summary></doc:doc>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Check the chosen finger against a saved fingerprint. You need to have claimed the device using
<doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref>. The finger selected is sent to the front-end
using <doc:ref type="signal" to="Device::VerifyFingerSelected">Device::VerifyFingerSelected</doc:ref> and
verification status through <doc:ref type="signal" to="Device::VerifyStatus">Device::VerifyStatus</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
<doc:error name="&ERROR_ALREADY_IN_USE;">if the device was already being used</doc:error>
<doc:error name="&ERROR_NO_ENROLLED_PRINTS;">if there are no enrolled prints for the chosen user</doc:error>
<doc:error name="&ERROR_INTERNAL;">if there was an internal error</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="VerifyStop">
<doc:doc>
<doc:description>
<doc:para>
Stop an on-going fingerprint verification started with <doc:ref type="method" to="Device.VerifyStart">Device.VerifyStart</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
<doc:error name="&ERROR_NO_ACTION_IN_PROGRESS;">if there was no ongoing verification</doc:error>
<doc:error name="&ERROR_INTERNAL;">if there was an internal error</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<signal name="VerifyFingerSelected">
<arg type="s" name="finger_name">
<doc:doc>
<doc:summary>
<doc:para>
A string representing the finger select to be verified.
</doc:para>
</doc:summary>
</doc:doc>
</arg>
<doc:doc>
<doc:seealso>
<doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.
</doc:seealso>
</doc:doc>
</signal>
<!-- ************************************************************ -->
<signal name="VerifyStatus">
<arg type="s" name="result">
<doc:doc>
<doc:summary>
A string representing the status of the verification.
</doc:summary>
</doc:doc>
</arg>
<arg type="b" name="done">
<doc:doc>
<doc:summary>
Whether the verification finished and can be stopped.
</doc:summary>
</doc:doc>
</arg>
<doc:doc>
<doc:seealso>
<doc:ref type="description" to="verify-statuses">Verify Statuses</doc:ref> and <doc:ref type="method" to="Device.VerifyStop">Device.VerifyStop</doc:ref>.
</doc:seealso>
</doc:doc>
</signal>
<!-- ************************************************************ -->
<method name="EnrollStart">
<arg type="s" name="finger_name" direction="in">
<doc:doc><doc:summary>A string representing the finger to enroll. See
<doc:ref type="description" to="fingerprint-names">Fingerprint names</doc:ref>.
Note that "any" is not a valid finger name for this method.</doc:summary></doc:doc>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Start enrollment for the selected finger. You need to have claimed the device using
<doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref> before calling
this method. Enrollment status is sent through <doc:ref type="signal" to="Device::EnrollStatus">Device::EnrollStatus</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
<doc:error name="&ERROR_ALREADY_IN_USE;">if the device was already being used</doc:error>
<doc:error name="&ERROR_INVALID_FINGERNAME;">if the finger name passed is invalid</doc:error>
<doc:error name="&FINGER_ALREADY_ENROLLED;">if the finger has been already enrolled by the user</doc:error>
<doc:error name="&ERROR_INTERNAL;">if there was an internal error</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="EnrollStop">
<doc:doc>
<doc:description>
<doc:para>
Stop an on-going fingerprint enrollment started with <doc:ref type="method" to="Device.EnrollStart">Device.EnrollStart</doc:ref>.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_PERMISSION_DENIED;">if the caller lacks the appropriate PolicyKit authorization</doc:error>
<doc:error name="&ERROR_CLAIM_DEVICE;">if the device was not claimed</doc:error>
<doc:error name="&ERROR_NO_ACTION_IN_PROGRESS;">if there was no ongoing verification</doc:error>
<doc:error name="&ERROR_INTERNAL;">if there was an internal error</doc:error>
</doc:errors>
</doc:doc>
</method>
<!-- ************************************************************ -->
<signal name="EnrollStatus">
<arg type="s" name="result">
<doc:doc>
<doc:summary>
A string representing the status of the enrollment.
</doc:summary>
</doc:doc>
</arg>
<arg type="b" name="done">
<doc:doc>
<doc:summary>
Whether the enrollment finished and can be stopped.
</doc:summary>
</doc:doc>
</arg>
<doc:doc>
<doc:seealso>
<doc:ref type="description" to="enroll-statuses">Enrollment Statuses</doc:ref> and <doc:ref type="method" to="Device.EnrollStop">Device.EnrollStop</doc:ref>.
</doc:seealso>
</doc:doc>
</signal>
<!-- ************************************************************ -->
<property name="name" type="s" access="read">
<doc:doc>
<doc:description>
<doc:para>
The product name of the device.
</doc:para>
</doc:description>
</doc:doc>
</property>
<!-- ************************************************************ -->
<property name="num-enroll-stages" type="i" access="read">
<doc:doc>
<doc:description>
<doc:para>
The number of enrollment stages for the device. This is only available when the device has been claimed, otherwise it will be undefined (-1).
</doc:para>
<doc:seealso>
<doc:ref type="method" to="Device.Claim">Device.Claim</doc:ref> and <doc:ref type="method" to="Device.EnrollStart">Device.EnrollStart</doc:ref>.
</doc:seealso>
</doc:description>
</doc:doc>
</property>
<!-- ************************************************************ -->
<property name="scan-type" type="s" access="read">
<doc:doc>
<doc:description>
<doc:para>
The scan type of the device, either "press" if you place your finger on the device, or "swipe" if you have to swipe your finger.
</doc:para>
</doc:description>
</doc:doc>
</property>
<!-- ************************************************************ -->
<property name="finger-present" type="b" access="read">
<doc:doc>
<doc:description>
<doc:para>
Whether the finger is on sensor.
</doc:para>
</doc:description>
</doc:doc>
</property>
<!-- ************************************************************ -->
<property name="finger-needed" type="b" access="read">
<doc:doc>
<doc:description>
<doc:para>
Whether the sensor is waiting for the finger.
</doc:para>
</doc:description>
</doc:doc>
</property>
</interface>
</node>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,47 @@
<!DOCTYPE node PUBLIC
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
<!ENTITY ERROR_NO_SUCH_DEVICE "net.reactivated.Fprint.Error.NoSuchDevice">
]>
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<interface name="net.reactivated.Fprint.Manager">
<!-- ************************************************************ -->
<method name="GetDevices">
<arg type="ao" name="devices" direction="out">
<doc:doc><doc:summary>An array of object paths for devices.</doc:summary></doc:doc>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Enumerate all the fingerprint readers attached to the system. If there are
no devices available, an empty array is returned.
</doc:para>
</doc:description>
</doc:doc>
</method>
<!-- ************************************************************ -->
<method name="GetDefaultDevice">
<arg type="o" name="device" direction="out">
<doc:doc><doc:summary>The object path for the default device.</doc:summary></doc:doc>
</arg>
<doc:doc>
<doc:description>
<doc:para>
Returns the default fingerprint reader device.
</doc:para>
</doc:description>
<doc:errors>
<doc:error name="&ERROR_NO_SUCH_DEVICE;">if the device does not exist</doc:error>
</doc:errors>
</doc:doc>
</method>
</interface>
</node>

View File

@ -0,0 +1,27 @@
inc = include_directories('../../../../..')
deps = [
dep_elementary
]
xml_codegen_result = []
foreach file : ['device', 'manager']
xml_codegen_result += custom_target('dbus_codegen_'+file,
input: file+'.xml',
output: ['eldbus_fprint_' + file + '.h', 'eldbus_fprint_' + file + '.c'],
command: [eldbus_codegen, '-O', meson.current_build_dir(), '@INPUT@'],
)
endforeach
src = [
'enlightenment_fprint.c',
]
executable('enlightenment_fprint',
src + xml_codegen_result,
include_directories: inc,
dependencies : deps,
gui_app : true,
install_dir : join_paths(dir_bin),
install : true)

View File

@ -3,3 +3,4 @@ subdir('filemanager')
subdir('open')
subdir('askpass')
subdir('remote')
subdir('fprint')