add multimedia keys

This commit is contained in:
Unrud 2018-09-30 00:26:31 +02:00
parent b3b068fe59
commit 34f4dbf77a
21 changed files with 1457 additions and 76 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+1F507 Speaker with Cancellation Stroke.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.51998147"
inkscape:cx="173.85039"
inkscape:cy="614.2482"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="true">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:30;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 484.74219 165.21094 C 481.46507 165.30684 478.30896 166.474 475.75781 168.5332 L 282.64453 324.57617 L 34.949219 324.57617 C 26.665288 324.577 19.95005 331.2922 19.949219 339.57617 L 19.949219 644.40039 C 19.95005 652.68432 26.665288 659.39956 34.949219 659.40039 L 262.81641 659.40039 L 475.75781 831.46484 C 485.56622 839.38586 500.17721 832.40823 500.18359 819.80078 L 500.18359 180.20508 C 500.18259 171.74797 493.19563 164.96209 484.74219 165.21094 z M 662.77734 316.65039 C 658.87578 316.70784 655.14976 318.28384 652.39062 321.04297 L 617.19531 356.24023 C 611.3367 362.09869 611.3367 371.59662 617.19531 377.45508 L 739.73438 500.00195 L 617.19531 622.54883 C 611.33954 628.40437 611.33588 637.89811 617.1875 643.75781 L 652.39062 678.96094 C 658.247 684.82162 667.74685 684.82528 673.60742 678.96875 L 796.1543 556.41602 L 918.69922 678.96875 C 924.55979 684.82528 934.05964 684.82162 939.91602 678.96094 L 975.11914 643.75781 C 980.97076 637.89811 980.96905 628.40437 975.11328 622.54883 L 852.57227 500.00195 L 975.11328 377.45508 C 980.97189 371.59662 980.97189 362.09869 975.11328 356.24023 L 939.91602 321.04297 C 934.05756 315.18436 924.55768 315.18436 918.69922 321.04297 L 796.1543 443.58984 L 673.60742 321.04297 C 670.73974 318.17529 666.8324 316.59049 662.77734 316.65039 z "
transform="matrix(0.26458333,0,0,0.26458333,0,32.41665)"
id="path828" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+1F509 Speaker with One Sound Wave.svg.2018_09_27_20_14_27.0.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.73536486"
inkscape:cx="732.0533"
inkscape:cy="512.86977"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="true">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:30;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 484.74219 165.21094 C 481.46507 165.30679 478.30896 166.474 475.75781 168.5332 L 282.64453 324.57617 L 34.949219 324.57617 C 26.665288 324.577 19.95005 331.2922 19.949219 339.57617 L 19.949219 644.40039 C 19.95005 652.68432 26.665288 659.39956 34.949219 659.40039 L 262.81641 659.40039 L 475.75781 831.46484 C 485.56622 839.38586 500.17721 832.40823 500.18359 819.80078 L 500.18359 180.20508 C 500.18223 171.74797 493.19563 164.96209 484.74219 165.21094 z M 596.02148 305.23047 C 594.17662 305.21535 592.34405 305.54205 590.61719 306.19141 L 520.87305 332.35156 C 513.10865 335.26429 509.18062 343.92497 512.10352 351.68555 C 529.44066 397.74521 538.92969 447.67401 538.92969 499.94336 C 538.92969 547.59292 531.03301 593.28945 516.50391 635.89648 C 513.94392 643.40353 517.66997 651.60435 525.00781 654.61523 L 594.06445 682.95508 C 602.00112 686.21367 611.05039 682.16384 613.9082 674.07422 C 633.15681 619.5579 643.63477 560.92547 643.63477 499.94336 C 643.63477 434.88046 631.69314 372.49004 609.91406 314.92383 C 607.72481 309.13737 602.20797 305.28746 596.02148 305.23047 z "
transform="matrix(0.26458333,0,0,0.26458333,0,32.41665)"
id="path828" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+1F50A Speaker with Three Sound Waves.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="1.039963"
inkscape:cx="755.38558"
inkscape:cy="561.27698"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="true">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:30;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 484.74219 165.21094 C 481.46507 165.30679 478.30896 166.474 475.75781 168.5332 L 282.64453 324.57617 L 34.949219 324.57617 C 26.665288 324.577 19.95005 331.2922 19.949219 339.57617 L 19.949219 644.40039 C 19.95005 652.68432 26.665288 659.39956 34.949219 659.40039 L 262.81641 659.40039 L 475.75781 831.46484 C 485.56622 839.38586 500.17721 832.40823 500.18359 819.80078 L 500.18359 180.20508 C 500.18223 171.74797 493.19563 164.96209 484.74219 165.21094 z M 876.86523 199.69336 C 875.19506 199.73399 873.54347 200.05184 871.97852 200.63672 L 800.04883 227.61914 C 790.72609 231.12057 787.34036 242.56637 793.25781 250.57617 C 844.71918 320.24234 875.10742 406.37235 875.10742 499.94336 C 875.10742 591.93283 845.74202 676.72496 795.85547 745.75977 C 790.17219 753.62504 793.34048 764.73472 802.31641 768.42188 L 872.73047 797.32227 C 879.31705 800.0224 886.89572 797.72283 890.86914 791.81641 C 944.66917 711.81469 977.04812 616.16489 979.64258 513.34961 C 979.64417 513.22413 979.64417 513.09814 979.64258 512.97266 L 979.64258 486.90625 C 979.64417 486.78077 979.64417 486.65673 979.64258 486.53125 C 977.02866 382.94396 944.18613 286.62909 889.6582 206.26172 C 886.78996 202.0373 881.96971 199.56343 876.86523 199.69336 z M 739.73242 251.22461 C 737.97188 251.23973 736.22799 251.5658 734.58008 252.18555 L 664.35547 278.52344 C 655.82938 281.72349 652.09733 291.72067 656.44141 299.72461 C 688.6996 359.18599 707.01563 427.31195 707.01562 499.94336 C 707.01562 569.50662 690.20981 634.92705 660.45117 692.57422 C 656.41554 700.393 659.94447 709.99017 668.08398 713.33203 L 737.14062 741.67773 C 744.39754 744.6574 752.72396 741.54392 756.24414 734.5332 C 791.72147 663.91099 811.72067 584.17527 811.7207 499.94336 C 811.7207 413.30635 790.56195 331.42543 753.16602 259.32422 C 750.56816 254.31194 745.37775 251.18088 739.73242 251.22461 z M 596.02148 305.23047 C 594.17662 305.21535 592.34405 305.54205 590.61719 306.19141 L 520.87305 332.35156 C 513.10865 335.26429 509.18062 343.92497 512.10352 351.68555 C 529.44066 397.74521 538.92969 447.67401 538.92969 499.94336 C 538.92969 547.59292 531.03301 593.28945 516.50391 635.89648 C 513.94392 643.40353 517.66997 651.60435 525.00781 654.61523 L 594.06445 682.95508 C 602.00112 686.21367 611.05039 682.16384 613.9082 674.07422 C 633.15681 619.5579 643.63477 560.92547 643.63477 499.94336 C 643.63477 434.88046 631.69314 372.49004 609.91406 314.92383 C 607.72481 309.13737 602.20797 305.28746 596.02148 305.23047 z "
transform="matrix(0.26458333,0,0,0.26458333,0,32.41665)"
id="path828" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View file

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+23ED Black Right-Pointing Double Triangle with Vertical Bar.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.55461861"
inkscape:cx="826.41907"
inkscape:cy="532.06492"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="true">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.9375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 255.29862,76.12716 c 2.19179,2.2e-4 3.96854,1.77696 3.96875,3.96875 v 169.22636 c -2.1e-4,2.19179 -1.77696,3.96853 -3.96875,3.96875 h -34.43053 c -2.19179,-2.2e-4 -3.96853,-1.77696 -3.96875,-3.96875 v -79.51401 l -99.32387,82.60013 c -2.59514,2.09577 -6.46148,0.2496 -6.46317,-3.08612 v -79.51814 l -99.329557,82.60426 c -2.5951393,2.09577 -6.4609663,0.2496 -6.4626543,-3.08612 V 80.09591 c 3.598e-4,-2.23761 1.8488977,-4.033041 4.085537,-3.967199 0.8670713,0.02536 1.7021253,0.334182 2.3771173,0.879014 L 111.1123,159.61198 V 80.09591 c 3.6e-4,-2.23761 1.84941,-4.033041 4.08605,-3.967199 0.86707,0.02536 1.70213,0.334182 2.37712,0.879014 l 99.32387,82.600125 V 80.09591 c 2.2e-4,-2.19179 1.77696,-3.96853 3.96875,-3.96875 z"
id="path832"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+23EE Black Left-Pointing Double Triangle with Vertical Bar.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.55461861"
inkscape:cx="406.82297"
inkscape:cy="697.5945"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="true">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.9375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 9.2888388,76.127161 c -2.19179,2.2e-4 -3.96854,1.77696 -3.96875,3.96875 V 249.32227 c 2.1e-4,2.19179 1.77696,3.96853 3.96875,3.96875 H 43.719369 c 2.19179,-2.2e-4 3.96853,-1.77696 3.96875,-3.96875 v -79.51401 l 99.323871,82.60013 c 2.59514,2.09577 6.46148,0.2496 6.46317,-3.08612 v -79.51814 l 99.32956,82.60426 c 2.59514,2.09577 6.46096,0.2496 6.46265,-3.08612 V 80.095911 c -3.6e-4,-2.23761 -1.8489,-4.033041 -4.08554,-3.967199 -0.86707,0.02536 -1.70212,0.334182 -2.37711,0.879014 L 153.47516,159.61198 V 80.095911 c -2.6e-4,-2.23761 -1.84941,-4.033041 -4.08605,-3.967199 -0.86707,0.02536 -1.70213,0.334182 -2.37712,0.879014 L 47.688119,159.60785 V 80.095911 c -2.2e-4,-2.19179 -1.77696,-3.96853 -3.96875,-3.96875 z"
id="path832-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View file

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+23EF Black Right-Pointing Triangle with Double Vertical Bar.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="0.39217458"
inkscape:cx="1029.7358"
inkscape:cy="424.58204"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="false">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:30;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 34.798828 165.20508 C 26.636227 165.37463 20.106477 172.04072 20.107422 180.20508 L 20.107422 819.80078 C 20.113822 832.40823 34.726741 839.38586 44.535156 831.46484 L 429.34961 511.66602 C 436.77831 505.66174 436.77831 494.3363 429.34961 488.33203 L 44.535156 168.5332 C 41.783607 166.31022 38.335407 165.13216 34.798828 165.20508 z M 562.77734 165.20508 C 554.49341 165.20591 547.77818 171.92115 547.77734 180.20508 L 547.77734 819.80078 C 547.77818 828.08471 554.49341 834.79995 562.77734 834.80078 L 692.9082 834.80078 C 701.19213 834.79995 707.90741 828.08471 707.9082 819.80078 L 707.9082 180.20508 C 707.90741 171.92115 701.19213 165.20591 692.9082 165.20508 L 562.77734 165.20508 z M 834.77734 165.20508 C 826.49341 165.20591 819.77818 171.92115 819.77734 180.20508 L 819.77734 819.80078 C 819.77818 828.08471 826.49341 834.79995 834.77734 834.80078 L 964.9082 834.80078 C 973.19213 834.79995 979.90741 828.08471 979.9082 819.80078 L 979.9082 180.20508 C 979.90741 171.92115 973.19213 165.20591 964.9082 165.20508 L 834.77734 165.20508 z "
transform="matrix(0.26458333,0,0,0.26458333,0,32.41665)"
id="path832" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg964"
version="1.1"
viewBox="0 0 264.58333 264.58334"
height="1000"
width="1000"
sodipodi:docname="U+2630 Trigram for Heaven.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview8"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="1.1353809"
inkscape:cx="173.83003"
inkscape:cy="594.60287"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg964"
inkscape:snap-global="true"
inkscape:measure-start="406.912,419.243"
inkscape:measure-end="406.912,580.422">
<sodipodi:guide
position="0,52.916667"
orientation="0,1"
id="guide815"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="5.2916667,0"
orientation="1,0"
id="guide817"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="0,259.29167"
orientation="0,1"
id="guide819"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="259.29167,0"
orientation="1,0"
id="guide821"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="29.104167,0"
orientation="1,0"
id="guide823"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="235.47917,0"
orientation="1,0"
id="guide825"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="0,1"
id="guide827"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
<sodipodi:guide
position="132.29167,161.39583"
orientation="1,0"
id="guide829"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,0,255)" />
</sodipodi:namedview>
<defs
id="defs958" />
<metadata
id="metadata961">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-32.41665)"
id="layer1"
inkscape:groupmode="layer" />
<path
sodipodi:nodetypes="ccccccccc"
id="path827"
d="m 220.87358,125.65977 c -2.2e-4,-2.19179 -1.77696,-3.96852 -3.96875,-3.96875 H 47.678502 c -2.191787,2.3e-4 -3.968527,1.77696 -3.968747,3.96875 v 13.26379 c 2.2e-4,2.19179 1.77696,3.96854 3.968747,3.96875 H 216.90483 c 2.19179,-2.1e-4 3.96853,-1.77696 3.96875,-3.96875 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.9375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.9375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 220.87358,203.33079 c -2.2e-4,-2.19179 -1.77696,-3.96852 -3.96875,-3.96875 H 47.678502 c -2.191787,2.3e-4 -3.968527,1.77696 -3.968747,3.96875 v 13.26379 c 2.2e-4,2.19179 1.77696,3.96854 3.968747,3.96875 H 216.90483 c 2.19179,-2.1e-4 3.96853,-1.77696 3.96875,-3.96875 z"
id="path825"
sodipodi:nodetypes="ccccccccc" />
<path
inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.9375;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 220.87358,47.988759 c -2.2e-4,-2.19179 -1.77696,-3.96852 -3.96875,-3.96875 H 47.678502 c -2.191787,2.3e-4 -3.968527,1.77696 -3.968747,3.96875 V 61.25254 c 2.2e-4,2.19179 1.77696,3.968537 3.968747,3.968747 H 216.90483 c 2.19179,-2.1e-4 3.96853,-1.776957 3.96875,-3.968747 z"
id="path828"
sodipodi:nodetypes="ccccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 8 KiB

View file

@ -21,7 +21,7 @@ OS2Version: 0
OS2_WeightWidthSlopeOnly: 0 OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 1 OS2_UseTypoMetrics: 1
CreationTime: 1535548659 CreationTime: 1535548659
ModificationTime: 1535550186 ModificationTime: 1538075883
PfmFamily: 17 PfmFamily: 17
TTFWeight: 400 TTFWeight: 400
TTFWidth: 5 TTFWidth: 5
@ -44,28 +44,29 @@ OS2Vendor: 'PfEd'
MarkAttachClasses: 1 MarkAttachClasses: 1
DEI: 91125 DEI: 91125
LangName: 1033 LangName: 1033
Encoding: UnicodeBmp Encoding: UnicodeFull
Compacted: 1 Compacted: 1
UnicodeInterp: none UnicodeInterp: none
NameList: AGL For New Fonts NameList: AGL For New Fonts
DisplaySize: -48 DisplaySize: -48
AntiAlias: 1 AntiAlias: 1
FitToEm: 0 FitToEm: 0
WinInfo: 0 27 10 WinInfo: 0 38 14
BeginPrivate: 0 BeginPrivate: 0
EndPrivate EndPrivate
TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144 TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
BeginChars: 65536 4 BeginChars: 1114112 11
StartChar: uni2328 StartChar: uni2328
Encoding: 9000 9000 0 Encoding: 9000 9000 0
Width: 1000 Width: 1000
VWidth: 0 VWidth: 0
Flags: HM HStem: 10 80<250 750> 200 60<285 395 445 555 605 715> 370 50<125 235 285 395 445 555 605 715 765 875> 530 60<125 235 285 395 445 555 605 715 765 875>
VStem: 20 105<260 370 420 530> 235 50<260 370 420 530> 395 50<260 370 420 530> 555 50<260 370 420 530> 715 50<260 370 420 530> 750 230<90 200> 875 105<260 370 420 530>
LayerCount: 2 LayerCount: 2
Fore Fore
SplineSet SplineSet
70 590 m 2 70 590 m 2xff20
930 590 l 2 930 590 l 2
957.700195312 590 980 567.700195312 980 540 c 2 957.700195312 590 980 567.700195312 980 540 c 2
980 60 l 2 980 60 l 2
@ -73,7 +74,7 @@ SplineSet
70 10 l 2 70 10 l 2
42.2998046875 10 20 32.2998046875 20 60 c 2 42.2998046875 10 20 32.2998046875 20 60 c 2
20 540 l 2 20 540 l 2
20 567.700195312 42.2998046875 590 70 590 c 2 20 567.700195312 42.2998046875 590 70 590 c 2xff20
135 530 m 2 135 530 m 2
129.459960938 530 125 525.540039062 125 520 c 2 129.459960938 530 125 525.540039062 125 520 c 2
125 430 l 2 125 430 l 2
@ -107,7 +108,7 @@ SplineSet
605 424.459960938 609.459960938 420 615 420 c 2 605 424.459960938 609.459960938 420 615 420 c 2
705 420 l 2 705 420 l 2
710.540039062 420 715 424.459960938 715 430 c 2 710.540039062 420 715 424.459960938 715 430 c 2
715 520 l 2 715 520 l 2xff80
715 525.540039062 710.540039062 530 705 530 c 2 715 525.540039062 710.540039062 530 705 530 c 2
615 530 l 2 615 530 l 2
775 530 m 2 775 530 m 2
@ -116,7 +117,7 @@ SplineSet
765 424.459960938 769.459960938 420 775 420 c 2 765 424.459960938 769.459960938 420 775 420 c 2
865 420 l 2 865 420 l 2
870.540039062 420 875 424.459960938 875 430 c 2 870.540039062 420 875 424.459960938 875 430 c 2
875 520 l 2 875 520 l 2xffa0
875 525.540039062 870.540039062 530 865 530 c 2 875 525.540039062 870.540039062 530 865 530 c 2
775 530 l 2 775 530 l 2
135 370 m 2 135 370 m 2
@ -170,18 +171,19 @@ SplineSet
250 94.4599609375 254.459960938 90 260 90 c 2 250 94.4599609375 254.459960938 90 260 90 c 2
740 90 l 2 740 90 l 2
745.540039062 90 750 94.4599609375 750 100 c 2 745.540039062 90 750 94.4599609375 750 100 c 2
750 190 l 2 750 190 l 2xff40
750 195.540039062 745.540039062 200 740 200 c 2 750 195.540039062 745.540039062 200 740 200 c 2
260 200 l 2 260 200 l 2
EndSplineSet EndSplineSet
Validated: 524289 Validated: 1
EndChar EndChar
StartChar: uni2922 StartChar: uni2922
Encoding: 10530 10530 1 Encoding: 10530 10530 1
Width: 1000 Width: 1000
VWidth: 0 VWidth: 0
Flags: HM HStem: -90.0059 80.1387<246.65 410.016> 609.867 80.1387<589.938 753.304>
VStem: 109.941 80.1387<46.7031 210.068> 809.874 80.1387<389.932 553.297>
LayerCount: 2 LayerCount: 2
Fore Fore
SplineSet SplineSet
@ -222,13 +224,14 @@ SplineSet
410.015625 -80.005859375 l 2 410.015625 -80.005859375 l 2
410.015625 -85.5458984375 405.555664062 -90.005859375 400.015625 -90.005859375 c 2 410.015625 -85.5458984375 405.555664062 -90.005859375 400.015625 -90.005859375 c 2
EndSplineSet EndSplineSet
Validated: 524289 Validated: 1
EndChar EndChar
StartChar: uni27A3 StartChar: uni27A3
Encoding: 10147 10147 2 Encoding: 10147 10147 2
Width: 1000 Width: 1000
VWidth: 0 VWidth: 0
Flags: HM
LayerCount: 2 LayerCount: 2
Fore Fore
SplineSet SplineSet
@ -298,14 +301,15 @@ SplineSet
914.63671875 319.998046875 l 1 914.63671875 319.998046875 l 1
226.22265625 319.998046875 l 2 226.22265625 319.998046875 l 2
EndSplineSet EndSplineSet
Validated: 524289 Validated: 1
EndChar EndChar
StartChar: uni21BB StartChar: uni21BB
Encoding: 8635 8635 3 Encoding: 8635 8635 3
Width: 1000 Width: 1000
VWidth: 0 VWidth: 0
Flags: HM HStem: -11.9004 80.0049<410.621 596.596> 531.894 80.0068<403.658 587.978>
VStem: 188.142 80.0029<203.446 389.421>
LayerCount: 2 LayerCount: 2
Fore Fore
SplineSet SplineSet
@ -337,6 +341,302 @@ SplineSet
188.141601562 400.823242188 259.505859375 522.6875 347.4375 572.018554688 c 0 188.141601562 400.823242188 259.505859375 522.6875 347.4375 572.018554688 c 0
383.451171875 592.221679688 446.166015625 609.974609375 487.42578125 611.645507812 c 0 383.451171875 592.221679688 446.166015625 609.974609375 487.42578125 611.645507812 c 0
EndSplineSet EndSplineSet
Validated: 1
EndChar
StartChar: u1F50A
Encoding: 128266 128266 4
Width: 1000
VWidth: 0
HStem: 140.6 334.824<19.9492 262.816>
VStem: 19.9492 480.234<140.6 475.424> 516.504 97.4043<145.53 207.841 392.475 467.508> 538.93 104.705<166.83 432.826> 707.016 104.705<166.604 433.179> 875.107 104.535<168.541 431.014>
LayerCount: 2
Fore
SplineSet
484.7421875 634.7890625 m 0xcc
493.1953125 635.038085938 500.182617188 628.251953125 500.18359375 619.794921875 c 2
500.18359375 -19.80078125 l 2
500.176757812 -32.408203125 485.56640625 -39.3857421875 475.7578125 -31.46484375 c 2
262.81640625 140.599609375 l 1
34.94921875 140.599609375 l 2
26.6650390625 140.600585938 19.9501953125 147.315429688 19.94921875 155.599609375 c 2
19.94921875 460.423828125 l 2
19.9501953125 468.708007812 26.6650390625 475.422851562 34.94921875 475.423828125 c 2
282.64453125 475.423828125 l 1
475.7578125 631.466796875 l 2
478.30859375 633.526367188 481.46484375 634.693359375 484.7421875 634.7890625 c 0xcc
876.865234375 600.306640625 m 0
881.969726562 600.436523438 886.790039062 597.962890625 889.658203125 593.73828125 c 0
944.186523438 513.37109375 977.028320312 417.055664062 979.642578125 313.46875 c 0
979.64453125 313.34375 979.64453125 313.219726562 979.642578125 313.09375 c 2
979.642578125 287.02734375 l 2
979.64453125 286.90234375 979.64453125 286.776367188 979.642578125 286.650390625 c 0
977.047851562 183.834960938 944.668945312 88.185546875 890.869140625 8.18359375 c 0
886.895507812 2.27734375 879.317382812 -0.0224609375 872.73046875 2.677734375 c 2
802.31640625 31.578125 l 2
793.340820312 35.265625 790.171875 46.375 795.85546875 54.240234375 c 0
845.7421875 123.275390625 875.107421875 208.067382812 875.107421875 300.056640625 c 0
875.107421875 393.627929688 844.71875 479.7578125 793.2578125 549.423828125 c 0
787.33984375 557.43359375 790.725585938 568.879882812 800.048828125 572.380859375 c 2
871.978515625 599.36328125 l 2
873.54296875 599.948242188 875.1953125 600.265625 876.865234375 600.306640625 c 0
739.732421875 548.775390625 m 0
745.377929688 548.819335938 750.568359375 545.688476562 753.166015625 540.67578125 c 0
790.561523438 468.57421875 811.720703125 386.693359375 811.720703125 300.056640625 c 0
811.720703125 215.825195312 791.721679688 136.088867188 756.244140625 65.466796875 c 0
752.723632812 58.4560546875 744.397460938 55.3427734375 737.140625 58.322265625 c 2
668.083984375 86.66796875 l 2
659.944335938 90.009765625 656.415039062 99.607421875 660.451171875 107.42578125 c 0
690.209960938 165.073242188 707.015625 230.493164062 707.015625 300.056640625 c 0
707.015625 372.688476562 688.69921875 440.814453125 656.44140625 500.275390625 c 0
652.09765625 508.279296875 655.829101562 518.276367188 664.35546875 521.4765625 c 2
734.580078125 547.814453125 l 2
736.227539062 548.434570312 737.971679688 548.760742188 739.732421875 548.775390625 c 0
596.021484375 494.76953125 m 0
602.208007812 494.712890625 607.724609375 490.862304688 609.9140625 485.076171875 c 0
631.693359375 427.509765625 643.634765625 365.119140625 643.634765625 300.056640625 c 0xdc
643.634765625 239.07421875 633.157226562 180.442382812 613.908203125 125.92578125 c 0
611.05078125 117.8359375 602.000976562 113.786132812 594.064453125 117.044921875 c 2
525.0078125 145.384765625 l 2
517.669921875 148.395507812 513.944335938 156.596679688 516.50390625 164.103515625 c 0xec
531.033203125 206.7109375 538.9296875 252.407226562 538.9296875 300.056640625 c 0xdc
538.9296875 352.326171875 529.440429688 402.254882812 512.103515625 448.314453125 c 0
509.180664062 456.075195312 513.108398438 464.735351562 520.873046875 467.6484375 c 2
590.6171875 493.80859375 l 2
592.34375 494.458007812 594.176757812 494.784179688 596.021484375 494.76953125 c 0
EndSplineSet
Validated: 1
EndChar
StartChar: u1F509
Encoding: 128265 128265 5
Width: 1000
VWidth: 0
HStem: 140.6 334.824<19.9492 262.816>
VStem: 19.9492 480.234<140.6 475.424> 516.504 97.4043<145.53 207.841 392.475 467.508> 538.93 104.705<166.83 432.826>
LayerCount: 2
Fore
SplineSet
484.7421875 634.7890625 m 0xc0
493.1953125 635.038085938 500.182617188 628.251953125 500.18359375 619.794921875 c 2
500.18359375 -19.80078125 l 2
500.176757812 -32.408203125 485.56640625 -39.3857421875 475.7578125 -31.46484375 c 2
262.81640625 140.599609375 l 1
34.94921875 140.599609375 l 2
26.6650390625 140.600585938 19.9501953125 147.315429688 19.94921875 155.599609375 c 2
19.94921875 460.423828125 l 2
19.9501953125 468.708007812 26.6650390625 475.422851562 34.94921875 475.423828125 c 2
282.64453125 475.423828125 l 1
475.7578125 631.466796875 l 2
478.30859375 633.526367188 481.46484375 634.693359375 484.7421875 634.7890625 c 0xc0
596.021484375 494.76953125 m 0
602.208007812 494.712890625 607.724609375 490.862304688 609.9140625 485.076171875 c 0
631.693359375 427.509765625 643.634765625 365.119140625 643.634765625 300.056640625 c 0xd0
643.634765625 239.07421875 633.157226562 180.442382812 613.908203125 125.92578125 c 0
611.05078125 117.8359375 602.000976562 113.786132812 594.064453125 117.044921875 c 2
525.0078125 145.384765625 l 2
517.669921875 148.395507812 513.944335938 156.596679688 516.50390625 164.103515625 c 0xe0
531.033203125 206.7109375 538.9296875 252.407226562 538.9296875 300.056640625 c 0xd0
538.9296875 352.326171875 529.440429688 402.254882812 512.103515625 448.314453125 c 0
509.180664062 456.075195312 513.108398438 464.735351562 520.873046875 467.6484375 c 2
590.6171875 493.80859375 l 2
592.34375 494.458007812 594.176757812 494.784179688 596.021484375 494.76953125 c 0
EndSplineSet
Validated: 1
EndChar
StartChar: u1F507
Encoding: 128263 128263 6
Width: 1000
VWidth: 0
HStem: 140.6 334.824<19.9492 262.816>
VStem: 19.9492 480.234<140.6 475.424>
LayerCount: 2
Fore
SplineSet
484.7421875 634.7890625 m 0
493.1953125 635.038085938 500.182617188 628.251953125 500.18359375 619.794921875 c 2
500.18359375 -19.80078125 l 2
500.176757812 -32.408203125 485.56640625 -39.3857421875 475.7578125 -31.46484375 c 2
262.81640625 140.599609375 l 1
34.94921875 140.599609375 l 2
26.6650390625 140.600585938 19.9501953125 147.315429688 19.94921875 155.599609375 c 2
19.94921875 460.423828125 l 2
19.9501953125 468.708007812 26.6650390625 475.422851562 34.94921875 475.423828125 c 2
282.64453125 475.423828125 l 1
475.7578125 631.466796875 l 2
478.30859375 633.526367188 481.46484375 634.693359375 484.7421875 634.7890625 c 0
662.77734375 483.349609375 m 0
666.83203125 483.409179688 670.739257812 481.825195312 673.607421875 478.95703125 c 2
796.154296875 356.41015625 l 1
918.69921875 478.95703125 l 2
924.557617188 484.815429688 934.057617188 484.815429688 939.916015625 478.95703125 c 2
975.11328125 443.759765625 l 2
980.971679688 437.901367188 980.971679688 428.403320312 975.11328125 422.544921875 c 2
852.572265625 299.998046875 l 1
975.11328125 177.451171875 l 2
980.96875 171.595703125 980.970703125 162.1015625 975.119140625 156.2421875 c 2
939.916015625 121.0390625 l 2
934.059570312 115.178710938 924.559570312 115.174804688 918.69921875 121.03125 c 2
796.154296875 243.583984375 l 1
673.607421875 121.03125 l 2
667.747070312 115.174804688 658.247070312 115.178710938 652.390625 121.0390625 c 2
617.1875 156.2421875 l 2
611.3359375 162.1015625 611.33984375 171.595703125 617.1953125 177.451171875 c 2
739.734375 299.998046875 l 1
617.1953125 422.544921875 l 2
611.336914062 428.403320312 611.336914062 437.901367188 617.1953125 443.759765625 c 2
652.390625 478.95703125 l 2
655.149414062 481.715820312 658.875976562 483.291992188 662.77734375 483.349609375 c 0
EndSplineSet
Validated: 1
EndChar
StartChar: uni23ED
Encoding: 9197 9197 7
Width: 1000
VWidth: 0
VStem: 819.777 160.131<-34.8008 280.725 319.277 634.795>
LayerCount: 2
Fore
SplineSet
964.908203125 634.794921875 m 2
973.192382812 634.793945312 979.907226562 628.079101562 979.908203125 619.794921875 c 2
979.908203125 -19.80078125 l 2
979.907226562 -28.0849609375 973.192382812 -34.7998046875 964.908203125 -34.80078125 c 2
834.77734375 -34.80078125 l 2
826.493164062 -34.7998046875 819.778320312 -28.0849609375 819.77734375 -19.80078125 c 2
819.77734375 280.724609375 l 1
444.379882812 -31.46484375 l 2
434.571289062 -39.3857421875 419.958007812 -32.408203125 419.952148438 -19.80078125 c 2
419.952148438 280.740234375 l 1
44.533203125 -31.46484375 l 2
34.724609375 -39.3857421875 20.1142578125 -32.408203125 20.107421875 -19.80078125 c 2
20.107421875 619.794921875 l 2
20.1083984375 628.251953125 27.095703125 635.038085938 35.548828125 634.7890625 c 0
38.826171875 634.693359375 41.982421875 633.526367188 44.533203125 631.466796875 c 2
419.952148438 319.26171875 l 1
419.952148438 619.794921875 l 2
419.953125 628.251953125 426.94140625 635.038085938 435.395507812 634.7890625 c 0
438.672851562 634.693359375 441.828125 633.526367188 444.379882812 631.466796875 c 2
819.77734375 319.27734375 l 1
819.77734375 619.794921875 l 2
819.778320312 628.079101562 826.493164062 634.793945312 834.77734375 634.794921875 c 2
964.908203125 634.794921875 l 2
EndSplineSet
Validated: 1
EndChar
StartChar: uni23EE
Encoding: 9198 9198 8
Width: 1000
VWidth: 0
VStem: 20.1074 160.131<-34.8008 280.725 319.277 634.795>
LayerCount: 2
Fore
SplineSet
35.107421875 634.794921875 m 2
165.23828125 634.794921875 l 2
173.522460938 634.793945312 180.237304688 628.079101562 180.23828125 619.794921875 c 2
180.23828125 319.27734375 l 1
555.635742188 631.466796875 l 2
558.186523438 633.526367188 561.342773438 634.693359375 564.620117188 634.7890625 c 0
573.073242188 635.038085938 580.0625 628.251953125 580.063476562 619.794921875 c 2
580.063476562 319.26171875 l 1
955.482421875 631.466796875 l 2
958.033203125 633.526367188 961.189453125 634.693359375 964.466796875 634.7890625 c 0
972.919921875 635.038085938 979.907226562 628.251953125 979.908203125 619.794921875 c 2
979.908203125 -19.80078125 l 2
979.901367188 -32.408203125 965.291015625 -39.3857421875 955.482421875 -31.46484375 c 2
580.063476562 280.740234375 l 1
580.063476562 -19.80078125 l 2
580.057617188 -32.408203125 565.444335938 -39.3857421875 555.635742188 -31.46484375 c 2
180.23828125 280.724609375 l 1
180.23828125 -19.80078125 l 2
180.237304688 -28.0849609375 173.522460938 -34.7998046875 165.23828125 -34.80078125 c 2
35.107421875 -34.80078125 l 2
26.8232421875 -34.7998046875 20.1083984375 -28.0849609375 20.107421875 -19.80078125 c 2
20.107421875 619.794921875 l 2
20.1083984375 628.079101562 26.8232421875 634.793945312 35.107421875 634.794921875 c 2
EndSplineSet
Validated: 1
EndChar
StartChar: uni23EF
Encoding: 9199 9199 9
Width: 1000
VWidth: 0
VStem: 547.777 160.131<-34.8008 634.795> 819.777 160.131<-34.8008 634.795>
LayerCount: 2
Fore
SplineSet
34.798828125 634.794921875 m 0
38.3349609375 634.868164062 41.783203125 633.689453125 44.53515625 631.466796875 c 2
429.349609375 311.66796875 l 2
436.778320312 305.6640625 436.778320312 294.337890625 429.349609375 288.333984375 c 2
44.53515625 -31.46484375 l 2
34.7265625 -39.3857421875 20.1142578125 -32.408203125 20.107421875 -19.80078125 c 2
20.107421875 619.794921875 l 2
20.1064453125 627.958984375 26.6357421875 634.625 34.798828125 634.794921875 c 0
562.77734375 634.794921875 m 2
692.908203125 634.794921875 l 2
701.192382812 634.793945312 707.907226562 628.079101562 707.908203125 619.794921875 c 2
707.908203125 -19.80078125 l 2
707.907226562 -28.0849609375 701.192382812 -34.7998046875 692.908203125 -34.80078125 c 2
562.77734375 -34.80078125 l 2
554.493164062 -34.7998046875 547.778320312 -28.0849609375 547.77734375 -19.80078125 c 2
547.77734375 619.794921875 l 2
547.778320312 628.079101562 554.493164062 634.793945312 562.77734375 634.794921875 c 2
834.77734375 634.794921875 m 2
964.908203125 634.794921875 l 2
973.192382812 634.793945312 979.907226562 628.079101562 979.908203125 619.794921875 c 2
979.908203125 -19.80078125 l 2
979.907226562 -28.0849609375 973.192382812 -34.7998046875 964.908203125 -34.80078125 c 2
834.77734375 -34.80078125 l 2
826.493164062 -34.7998046875 819.778320312 -28.0849609375 819.77734375 -19.80078125 c 2
819.77734375 619.794921875 l 2
819.778320312 628.079101562 826.493164062 634.793945312 834.77734375 634.794921875 c 2
EndSplineSet
Validated: 1
EndChar
StartChar: uni2630
Encoding: 9776 9776 10
Width: 1000
VWidth: 0
HStem: -33.625 80.1309<165.202 834.798> 259.935 80.1309<165.202 834.798> 553.494 80.1309<165.202 834.798>
CounterMasks: 1 e0
LayerCount: 2
Fore
SplineSet
834.797851562 325.065429688 m 2
834.797851562 274.934570312 l 2
834.796875 266.650390625 828.08203125 259.935546875 819.797851562 259.934570312 c 2
180.202148438 259.934570312 l 2
171.91796875 259.935546875 165.203125 266.650390625 165.202148438 274.934570312 c 2
165.202148438 325.065429688 l 2
165.203125 333.349609375 171.91796875 340.064453125 180.202148438 340.065429688 c 2
819.797851562 340.065429688 l 2
828.08203125 340.064453125 834.796875 333.349609375 834.797851562 325.065429688 c 2
834.797851562 31.505859375 m 2
834.797851562 -18.625 l 2
834.796875 -26.9091796875 828.08203125 -33.6240234375 819.797851562 -33.625 c 2
180.202148438 -33.625 l 2
171.91796875 -33.6240234375 165.203125 -26.9091796875 165.202148438 -18.625 c 2
165.202148438 31.505859375 l 2
165.203125 39.7900390625 171.91796875 46.5048828125 180.202148438 46.505859375 c 2
819.797851562 46.505859375 l 2
828.08203125 46.5048828125 834.796875 39.7900390625 834.797851562 31.505859375 c 2
834.797851562 618.625 m 2
834.797851562 568.494140625 l 2
834.796875 560.209960938 828.08203125 553.495117188 819.797851562 553.494140625 c 2
180.202148438 553.494140625 l 2
171.91796875 553.495117188 165.203125 560.209960938 165.202148438 568.494140625 c 2
165.202148438 618.625 l 2
165.203125 626.909179688 171.91796875 633.624023438 180.202148438 633.625 c 2
819.797851562 633.625 l 2
828.08203125 633.624023438 834.796875 626.909179688 834.797851562 618.625 c 2
EndSplineSet
Validated: 524289 Validated: 524289
EndChar EndChar
EndChars EndChars

View file

@ -1,6 +1,6 @@
package main package main
var keysymsMap = map[rune]int32{ var keysymsMap = map[rune]Keysym{
0x0008: 0x0000ff08, 0x0008: 0x0000ff08,
0x0009: 0x0000ff09, 0x0009: 0x0000ff09,
0x000a: 0x0000ff0a, 0x000a: 0x0000ff0a,

View file

@ -31,6 +31,8 @@ import (
"strconv" "strconv"
) )
type Keysym int32
const ( const (
keysymdefHeader string = "/usr/include/X11/keysymdef.h" keysymdefHeader string = "/usr/include/X11/keysymdef.h"
output string = "keysyms.generated.go" output string = "keysyms.generated.go"
@ -56,12 +58,12 @@ func main() {
} }
defer f.Close() defer f.Close()
reader := bufio.NewReader(f) reader := bufio.NewReader(f)
re := regexp.MustCompile("^#define" + re := regexp.MustCompile("^\\#define " +
"\\s+([A-Za-z0-9_]+)" + // keysymName "(XK_[a-zA-Z_0-9]+)\\s+" + // keysymName
"\\s+0x([0-9a-fA-F]+)" + // keysym "0x([0-9a-f]+)\\s*" + // keysym
"\\s*(?:/\\*\\s*(?:U\\+([0-9A-Fa-f]+))?.*\\*/)?" + // keysymUnicode (optional) "(?:/\\*\\s*(?:U\\+([0-9A-F]{4,6}))?.*\\*/\\s*)?" + // keysymUnicode (optional)
"\\s*$") "$")
keysymsMap := make(map[rune]int32) keysymsMap := make(map[rune]Keysym)
for { for {
l, err := reader.ReadString('\n') l, err := reader.ReadString('\n')
if err == io.EOF { if err == io.EOF {
@ -75,7 +77,7 @@ func main() {
} }
keysymName := submatches[1] keysymName := submatches[1]
keysymTemp, err := strconv.ParseInt(submatches[2], 16, 32) keysymTemp, err := strconv.ParseInt(submatches[2], 16, 32)
keysym := int32(keysymTemp) keysym := Keysym(keysymTemp)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -100,7 +102,7 @@ func main() {
keysymsMap[unicode] = keysym keysymsMap[unicode] = keysym
} }
content := "package main\n\n" + content := "package main\n\n" +
"var keysymsMap = map[rune]int32{\n" "var keysymsMap = map[rune]Keysym{\n"
keys := make([]rune, 0) keys := make([]rune, 0)
for key := range keysymsMap { for key := range keysymsMap {
keys = append(keys, key) keys = append(keys, key)

View file

@ -23,7 +23,18 @@ package main
import "errors" import "errors"
func runeToKeysym(runeValue rune) (int32, error) { type Keysym int32
const (
xf86AudioLowerVolume Keysym = 0x1008ff11
xf86AudioMute Keysym = 0x1008ff12
xf86AudioRaiseVolume Keysym = 0x1008ff13
xf86AudioPlay Keysym = 0x1008ff14
xf86AudioPrev Keysym = 0x1008ff16
xf86AudioNext Keysym = 0x1008ff17
)
func RuneToKeysym(runeValue rune) (Keysym, error) {
if runeValue == '\n' { if runeValue == '\n' {
runeValue = '\r' runeValue = '\r'
} }
@ -33,7 +44,29 @@ func runeToKeysym(runeValue rune) (int32, error) {
return 0, errors.New("rune not mappend to keysym and " + return 0, errors.New("rune not mappend to keysym and " +
"out of range for direct unicode mapping") "out of range for direct unicode mapping")
} }
keysym = 0x01000000 + runeValue keysym = Keysym(0x01000000 + runeValue)
} }
return keysym, nil return keysym, nil
} }
func KeyToKeysym(key Key) (Keysym, error) {
if key == KeyVolumeMute {
return xf86AudioMute, nil
}
if key == KeyVolumeDown {
return xf86AudioLowerVolume, nil
}
if key == KeyVolumeUp {
return xf86AudioRaiseVolume, nil
}
if key == KeyMediaPlayPause {
return xf86AudioPlay, nil
}
if key == KeyMediaPrevTrack {
return xf86AudioPrev, nil
}
if key == KeyMediaNextTrack {
return xf86AudioNext, nil
}
return 0, errors.New("key not mapped to keysym")
}

View file

@ -66,13 +66,20 @@ func processCommand(plugin Plugin, command string) error {
return plugin.KeyboardText(text) return plugin.KeyboardText(text)
} }
arguments := strings.Split(command[1:], ";") arguments := strings.Split(command[1:], ";")
if len(arguments) != 2 { if command[0] == 'k' && len(arguments) != 1 ||
command[0] != 'k' && len(arguments) != 2 {
return errors.New("wrong number of arguments") return errors.New("wrong number of arguments")
} }
x, err := strconv.ParseInt(arguments[0], 10, 32) x, err := strconv.ParseInt(arguments[0], 10, 32)
if err != nil { if err != nil {
return err return err
} }
if command[0] == 'k' {
if x < 0 || x >= int64(KeyLimit) {
return errors.New("unsupported key")
}
return plugin.KeyboardKey(Key(x))
}
y, err := strconv.ParseInt(arguments[1], 10, 32) y, err := strconv.ParseInt(arguments[1], 10, 32)
if err != nil { if err != nil {
return err return err

View file

@ -20,6 +20,7 @@
package main package main
type PointerButton int type PointerButton int
type Key int
const ( const (
PointerButtonLeft PointerButton = iota PointerButtonLeft PointerButton = iota
@ -28,6 +29,16 @@ const (
PointerButtonLimit PointerButtonLimit
) )
const (
KeyVolumeMute Key = iota
KeyVolumeDown
KeyVolumeUp
KeyMediaPlayPause
KeyMediaPrevTrack
KeyMediaNextTrack
KeyLimit
)
type PluginInfo struct { type PluginInfo struct {
Name string Name string
Init func() (Plugin, error) Init func() (Plugin, error)
@ -50,6 +61,7 @@ func (e UnsupportedPlatformError) Error() string {
type Plugin interface { type Plugin interface {
Close() error Close() error
KeyboardText(text string) error KeyboardText(text string) error
KeyboardKey(key Key) error
PointerButton(button PointerButton, press bool) error PointerButton(button PointerButton, press bool) error
PointerMove(deltaX, deltaY int) error PointerMove(deltaX, deltaY int) error
PointerScroll(deltaHorizontal, deltaVertical int) error PointerScroll(deltaHorizontal, deltaVertical int) error

View file

@ -185,18 +185,14 @@ func (p *portalPlugin) Close() error {
return nil return nil
} }
func (p *portalPlugin) KeyboardText(text string) error { func (p *portalPlugin) keyboardKeys(keys []Keysym) error {
p.lock.RLock() p.lock.RLock()
defer p.lock.RUnlock() defer p.lock.RUnlock()
if p.bus == nil { if p.bus == nil {
return errors.New("dbus connection closed") return errors.New("dbus connection closed")
} }
inVardict := make(map[string]dbus.Variant) inVardict := make(map[string]dbus.Variant)
for _, runeValue := range text { for _, keysym := range keys {
keysym, err := runeToKeysym(runeValue)
if err != nil {
return err
}
for _, state := range [...]uint32{btnPressed, btnReleased} { for _, state := range [...]uint32{btnPressed, btnReleased} {
if err := p.remoteDesktop.Call( if err := p.remoteDesktop.Call(
"org.freedesktop.portal.RemoteDesktop.NotifyKeyboardKeysym", "org.freedesktop.portal.RemoteDesktop.NotifyKeyboardKeysym",
@ -208,6 +204,27 @@ func (p *portalPlugin) KeyboardText(text string) error {
return nil return nil
} }
func (p *portalPlugin) KeyboardText(text string) error {
keys := make([]Keysym, 0, len(text))
for _, runeValue := range text {
keysym, err := RuneToKeysym(runeValue)
if err != nil {
return err
}
keys = append(keys, keysym)
}
return p.keyboardKeys(keys)
}
func (p *portalPlugin) KeyboardKey(key Key) error {
keysym, err := KeyToKeysym(key)
if err != nil {
return err
}
keys := [...]Keysym{keysym}
return p.keyboardKeys(keys[:])
}
func (p *portalPlugin) PointerButton(button PointerButton, press bool) error { func (p *portalPlugin) PointerButton(button PointerButton, press bool) error {
p.lock.RLock() p.lock.RLock()
defer p.lock.RUnlock() defer p.lock.RUnlock()

View file

@ -34,6 +34,13 @@ const (
keyeventfKeyup uint32 = 0x2 keyeventfKeyup uint32 = 0x2
keyeventfUnicode uint32 = 0x4 keyeventfUnicode uint32 = 0x4
vkVolumeMute uint16 = 0xAD
vkVolumeDown uint16 = 0xAE
vkVolumeUp uint16 = 0xAF
vkMediaNextTrack uint16 = 0xB0
vkMediaPrevTrack uint16 = 0xB1
vkMediaPlayPause uint16 = 0xB3
mouseeventfMove uint32 = 0x1 mouseeventfMove uint32 = 0x1
mouseeventfLeftdown uint32 = 0x2 mouseeventfLeftdown uint32 = 0x2
mouseeventfLeftup uint32 = 0x4 mouseeventfLeftup uint32 = 0x4
@ -84,20 +91,10 @@ func (p *windowsPlugin) Close() error {
return nil return nil
} }
func (p *windowsPlugin) KeyboardText(text string) error { func (p *windowsPlugin) sendInput(inputs []keybdInput) error {
runes := []rune(text) if len(inputs) == 0 {
if len(runes) == 0 {
return nil return nil
} }
inputs := make([]keybdInput, len(runes)*2)
for i := range inputs {
inputs[i].typ = inputKeyboard
inputs[i].wScan = uint16(runes[i/2])
inputs[i].dwFlags = keyeventfUnicode
if i%2 == 1 {
inputs[i].dwFlags |= keyeventfKeyup
}
}
if r, _, err := sendInputProc.Call(uintptr(len(inputs)), if r, _, err := sendInputProc.Call(uintptr(len(inputs)),
uintptr(unsafe.Pointer(&inputs[0])), uintptr(unsafe.Pointer(&inputs[0])),
unsafe.Sizeof(inputs[0])); int(r) != len(inputs) { unsafe.Sizeof(inputs[0])); int(r) != len(inputs) {
@ -106,6 +103,42 @@ func (p *windowsPlugin) KeyboardText(text string) error {
return nil return nil
} }
func (p *windowsPlugin) KeyboardText(text string) error {
inputs := make([]keybdInput, 0, len(text)*2)
for _, runeValue := range text {
in := keybdInput{typ: inputKeyboard, wScan: uint16(runeValue), dwFlags: keyeventfUnicode}
inputs = append(inputs, in)
in.dwFlags |= keyeventfKeyup
inputs = append(inputs, in)
}
if len(inputs) == 0 {
return nil
}
return p.sendInput(inputs)
}
func (p *windowsPlugin) KeyboardKey(key Key) error {
input := keybdInput{typ: inputKeyboard}
if key == KeyVolumeMute {
input.wVk = vkVolumeMute
} else if key == KeyVolumeDown {
input.wVk = vkVolumeDown
} else if key == KeyVolumeUp {
input.wVk = vkVolumeUp
} else if key == KeyMediaNextTrack {
input.wVk = vkMediaNextTrack
} else if key == KeyMediaPrevTrack {
input.wVk = vkMediaPrevTrack
} else if key == KeyMediaPlayPause {
input.wVk = vkMediaPlayPause
} else {
return errors.New("key not mapped to virtual-key code")
}
inputs := [...]keybdInput{input, input}
inputs[1].dwFlags |= keyeventfKeyup
return p.sendInput(inputs[:])
}
func (p *windowsPlugin) PointerButton(button PointerButton, press bool) error { func (p *windowsPlugin) PointerButton(button PointerButton, press bool) error {
input := mouseInput{typ: inputMouse} input := mouseInput{typ: inputMouse}
if button == PointerButtonLeft && press { if button == PointerButtonLeft && press {

View file

@ -36,7 +36,7 @@ import (
) )
const ( const (
typingDelay time.Duration = 250 * time.Millisecond keyboardMappingDelay time.Duration = 250 * time.Millisecond
scrollDiv int = 20 scrollDiv int = 20
) )
@ -71,13 +71,13 @@ func (p *x11Plugin) Close() error {
return nil return nil
} }
func (p *x11Plugin) KeyboardText(text string) error { func (p *x11Plugin) keyboardKeys(keys []Keysym) error {
p.lock.Lock() p.lock.Lock()
defer p.lock.Unlock() defer p.lock.Unlock()
if p.display == nil { if p.display == nil {
return errors.New("X server connection closed") return errors.New("X server connection closed")
} }
if text == "" { if len(keys) == 0 {
return nil return nil
} }
var minKeycodes, maxKeycodes C.int var minKeycodes, maxKeycodes C.int
@ -116,25 +116,45 @@ keycodes:
(*C.KeySym)(unsafe.Pointer(&keycodeMapping[0])), 1) (*C.KeySym)(unsafe.Pointer(&keycodeMapping[0])), 1)
C.XFlush(p.display) C.XFlush(p.display)
}() }()
for _, runeValue := range text { for _, keysym := range keys {
keysym, err := runeToKeysym(runeValue)
if err != nil {
return err
}
for i := range keycodeMapping { for i := range keycodeMapping {
keycodeMapping[i] = C.KeySym(keysym) keycodeMapping[i] = C.KeySym(keysym)
} }
C.XChangeKeyboardMapping(p.display, C.int(emptyKeycode), keysymsPerKeycode, C.XChangeKeyboardMapping(p.display, C.int(emptyKeycode), keysymsPerKeycode,
(*C.KeySym)(unsafe.Pointer(&keycodeMapping[0])), 1) (*C.KeySym)(unsafe.Pointer(&keycodeMapping[0])), 1)
// race condition!
C.XFlush(p.display)
time.Sleep(keyboardMappingDelay)
C.XTestFakeKeyEvent(p.display, C.uint(emptyKeycode), C.True, 0) C.XTestFakeKeyEvent(p.display, C.uint(emptyKeycode), C.True, 0)
C.XTestFakeKeyEvent(p.display, C.uint(emptyKeycode), C.False, 0) C.XTestFakeKeyEvent(p.display, C.uint(emptyKeycode), C.False, 0)
// race condition! // race condition!
C.XFlush(p.display) C.XFlush(p.display)
time.Sleep(typingDelay) time.Sleep(keyboardMappingDelay)
} }
return nil return nil
} }
func (p *x11Plugin) KeyboardText(text string) error {
keys := make([]Keysym, 0, len(text))
for _, runeValue := range text {
keysym, err := RuneToKeysym(runeValue)
if err != nil {
return err
}
keys = append(keys, keysym)
}
return p.keyboardKeys(keys)
}
func (p *x11Plugin) KeyboardKey(key Key) error {
keysym, err := KeyToKeysym(key)
if err != nil {
return err
}
keys := [...]Keysym{keysym}
return p.keyboardKeys(keys[:])
}
func (p *x11Plugin) sendButton(button uint, press bool) error { func (p *x11Plugin) sendButton(button uint, press bool) error {
p.lock.Lock() p.lock.Lock()
defer p.lock.Unlock() defer p.lock.Unlock()

View file

@ -32,6 +32,13 @@ const POINTER_BUTTON_LEFT = 0;
const POINTER_BUTTON_RIGHT = 1; const POINTER_BUTTON_RIGHT = 1;
const POINTER_BUTTON_MIDDLE = 2; const POINTER_BUTTON_MIDDLE = 2;
const KEY_VOLUME_MUTE = 0;
const KEY_VOLUME_DOWN = 1;
const KEY_VOLUME_UP = 2;
const KEY_MEDIA_PLAY_PAUSE = 3;
const KEY_MEDIA_PREV_TRACK = 4;
const KEY_MEDIA_NEXT_TRACK = 5;
var ws; var ws;
var pad; var pad;
var padlabel; var padlabel;
@ -310,11 +317,13 @@ window.addEventListener("load", function() {
var closed = document.getElementById("closed"); var closed = document.getElementById("closed");
pad = document.getElementById("pad"); pad = document.getElementById("pad");
padlabel = document.getElementById("padlabel"); padlabel = document.getElementById("padlabel");
var keys = document.getElementById("keys");
var keyboard = document.getElementById("keyboard"); var keyboard = document.getElementById("keyboard");
var fullscreenbutton = document.getElementById("fullscreenbutton"); var fullscreenbutton = document.getElementById("fullscreenbutton");
var text = document.getElementById("text"); var text = document.getElementById("text");
closed.style.display = "none"; closed.style.display = "none";
pad.style.display = "none"; pad.style.display = "none";
keys.style.display = "none";
keyboard.style.display = "none"; keyboard.style.display = "none";
text.value = ""; text.value = "";
@ -337,6 +346,8 @@ window.addEventListener("load", function() {
if (history.state == "keyboard") { if (history.state == "keyboard") {
keyboard.style.display = "flex"; keyboard.style.display = "flex";
text.focus(); text.focus();
} else if (history.state == "keys") {
keys.style.display = "flex";
} else { } else {
pad.style.display = "flex"; pad.style.display = "flex";
} }
@ -348,10 +359,17 @@ window.addEventListener("load", function() {
} }
opening.style.display = "none"; opening.style.display = "none";
pad.style.display = "none"; pad.style.display = "none";
keys.style.display = "none";
keyboard.style.display = "none"; keyboard.style.display = "none";
closed.style.display = "flex"; closed.style.display = "flex";
}; };
document.getElementById("keysbutton").addEventListener("click",
function(e) {
pad.style.display = "none";
keys.style.display = "flex";
history.pushState("keys", "");
});
document.getElementById("keyboardbutton").addEventListener("click", document.getElementById("keyboardbutton").addEventListener("click",
function(e) { function(e) {
if (fullscreenElement()) { if (fullscreenElement()) {
@ -372,6 +390,17 @@ window.addEventListener("load", function() {
requestFullscreen(pad); requestFullscreen(pad);
} }
}); });
[{id: "prevtrackbutton", key: KEY_MEDIA_PREV_TRACK},
{id: "playpausebutton", key: KEY_MEDIA_PLAY_PAUSE},
{id: "nexttrackbutton", key: KEY_MEDIA_NEXT_TRACK},
{id: "volumedownbutton", key: KEY_VOLUME_DOWN},
{id: "volumemutebutton", key: KEY_VOLUME_MUTE},
{id: "volumeupbutton", key: KEY_VOLUME_UP}].forEach(function(o) {
document.getElementById(o.id).addEventListener("click",
function(e) {
ws.send("k" + o.key);
});
});
document.getElementById("sendbutton").addEventListener("click", document.getElementById("sendbutton").addEventListener("click",
function(e) { function(e) {
if (text.value != "") { if (text.value != "") {
@ -381,8 +410,10 @@ window.addEventListener("load", function() {
window.history.back(); window.history.back();
}); });
window.onpopstate = function(event) { window.onpopstate = function(event) {
if (keyboard.style.display == "flex") { if (keyboard.style.display == "flex" ||
keys.style.display == "flex") {
pad.style.display = "flex"; pad.style.display = "flex";
keys.style.display = "none";
keyboard.style.display = "none"; keyboard.style.display = "none";
} else { } else {
window.history.back(); window.history.back();

Binary file not shown.

View file

@ -21,6 +21,9 @@
<button class="icon" id="reloadbutton"></button> <button class="icon" id="reloadbutton"></button>
</div> </div>
<div id="pad"> <div id="pad">
<div class="buttons">
<button class="icon" id="keysbutton"></button>
</div>
<p id="padlabel">Touchpad</p> <p id="padlabel">Touchpad</p>
<div class="buttons"> <div class="buttons">
<button class="icon" id="fullscreenbutton"></button> <button class="icon" id="fullscreenbutton"></button>
@ -31,6 +34,18 @@
<textarea id="text"></textarea> <textarea id="text"></textarea>
<button class="icon" id="sendbutton"></button> <button class="icon" id="sendbutton"></button>
</div> </div>
<div id="keys">
<div class="buttons">
<button class="icon" id="prevtrackbutton"></button>
<button class="icon" id="playpausebutton"></button>
<button class="icon" id="nexttrackbutton"></button>
</div>
<div class="buttons">
<button class="icon" id="volumedownbutton">🔉</button>
<button class="icon" id="volumemutebutton">🔇</button>
<button class="icon" id="volumeupbutton">🔊</button>
</div>
</div>
</body> </body>
</html> </html>

View file

@ -2,6 +2,7 @@ html,
body, body,
#pad, #pad,
#keyboard, #keyboard,
#keys,
#opening, #opening,
#closed { #closed {
width: 100%; width: 100%;
@ -14,6 +15,7 @@ body {
} }
#pad, #pad,
#keys,
#sendbutton, #sendbutton,
#opening, #opening,
#closed { #closed {
@ -22,21 +24,27 @@ body {
} }
#opening, #opening,
#closed { #closed,
display: flex; #keys,
align-items: center;
justify-content: center;
font-size: 2em;
color: white;
word-wrap: break-word;
flex-direction: column;
}
#pad { #pad {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
#opening,
#closed {
justify-content: center;
align-items: center;
font-size: 2em;
color: white;
word-wrap: break-word;
}
#keys {
justify-content: flex-end;
align-items: center;
}
#padlabel { #padlabel {
color: gray; color: gray;
text-shadow: text-shadow:
@ -59,10 +67,17 @@ body {
} }
} }
#keysbutton,
#fullscreenbutton, #fullscreenbutton,
#keyboardbutton, #keyboardbutton,
#sendbutton, #sendbutton,
#reloadbutton { #reloadbutton,
#prevtrackbutton,
#playpausebutton,
#nexttrackbutton,
#volumedownbutton,
#volumemutebutton,
#volumeupbutton {
background-color: transparent; background-color: transparent;
border: 1px solid black; border: 1px solid black;
height: 1.5em; height: 1.5em;
@ -77,12 +92,24 @@ body {
border-bottom: none; border-bottom: none;
} }
#fullscreenbutton { #keysbutton,
#fullscreenbutton,
#playpausebutton,
#mutebutton {
border-left: none; border-left: none;
} }
#keysbutton {
border-top: none;
}
#playpausebutton,
#mutebutton,
#keyboardbutton { #keyboardbutton {
border-right: none; border-right: none;
}
#keyboardbutton {
margin-left: auto; margin-left: auto;
} }
@ -110,6 +137,27 @@ body {
height: 100%; height: 100%;
} }
#keys > .buttons {
margin-bottom: 0.5rem;
}
#keys > .buttons > button {
height: 6rem;
width: 8rem;
}
@media (max-width: 25rem) {
#keys > .buttons > button {
width: calc(0.33 * (100vw - 1rem));
}
}
@media (max-height: 13.5rem) {
#keys > .buttons > button {
height: calc(0.5 * (100vh - 1.5rem));
}
}
@media (max-aspect-ratio: 4/3) { @media (max-aspect-ratio: 4/3) {
#keyboard { #keyboard {
flex-direction: column; flex-direction: column;