Grafikverzeichnis neu organisiert

grafik-cleanup
Ulli Kehrle 2 years ago committed by Ulli Kehrle
parent 972aa8fd8d
commit 784bba9096
  1. 11
      grafik/COPYING
  2. 106
      grafik/Makefile
  3. BIN
      grafik/NEO-20-Layout-alle-6-Ebenen.ods
  4. 3341
      grafik/Php-Skript/neo_raw.svg
  5. 55
      grafik/Php-Skript/neo_svg.php
  6. 36
      grafik/Readme.md
  7. 0
      grafik/_not_working/xkb2svg/xkb2svg.sh
  8. 0
      grafik/_not_working/xmodmap2tastenaufkleber/README.md
  9. 0
      grafik/_not_working/xmodmap2tastenaufkleber/beispielausgabe/beispiel.svg
  10. 0
      grafik/_not_working/xmodmap2tastenaufkleber/beispielausgabe/modifiertasten.svg
  11. 0
      grafik/_not_working/xmodmap2tastenaufkleber/beispielausgabe/neue_neo_de.xmodmap
  12. 0
      grafik/_not_working/xmodmap2tastenaufkleber/keysymdef.h
  13. 0
      grafik/_not_working/xmodmap2tastenaufkleber/svg_kopf
  14. 0
      grafik/_not_working/xmodmap2tastenaufkleber/tastaturbilder/tastatur1.jpg
  15. 0
      grafik/_not_working/xmodmap2tastenaufkleber/tastaturbilder/tastatur2.jpg
  16. 0
      grafik/_not_working/xmodmap2tastenaufkleber/tastaturbilder/tastatur3.jpg
  17. 0
      grafik/_not_working/xmodmap2tastenaufkleber/xmodmap2tastenaufkleber.sh
  18. 11
      grafik/aufkleber/Makefile
  19. 4
      grafik/aufkleber/alle-grau-1234.pl
  20. 0
      grafik/aufkleber/neo-bunt-123456.svg
  21. 0
      grafik/aufkleber/neo-bunt-swmod-123456.svg
  22. 0
      grafik/aufkleber/neo-schwarz-123.svg
  23. 0
      grafik/aufkleber/neo-schwarz-123456.svg
  24. 0
      grafik/aufkleber/neo-schwarz-gross-1234.svg
  25. 0
      grafik/aufkleber/neo-sw-block-123456.svg
  26. 0
      grafik/aufkleber/neo-weiss-123.svg
  27. 0
      grafik/aufkleber/neo-weiss-gross-1234.svg
  28. 2
      grafik/aufsteller/Makefile
  29. 0
      grafik/aufsteller/neo-aufsteller-vereinfacht.svg
  30. 0
      grafik/aufsteller/neo-aufsteller.svg
  31. 58
      grafik/bilder-einzeln/3d/Makefile
  32. 17768
      grafik/bilder-einzeln/3d/bone.svg.template
  33. 0
      grafik/bilder-einzeln/3d/kyrillisch.svg.template
  34. 0
      grafik/bilder-einzeln/3d/neo.svg.template
  35. 18
      grafik/bilder-einzeln/Makefile
  36. 2
      grafik/bilder-einzeln/bunt-einfach/Makefile
  37. 0
      grafik/bilder-einzeln/bunt-einfach/neo-1.svg
  38. 0
      grafik/bilder-einzeln/bunt-einfach/neo-3.svg
  39. 0
      grafik/bilder-einzeln/bunt-einfach/neo-4.svg
  40. 19
      grafik/bilder-einzeln/flat/Makefile
  41. 0
      grafik/bilder-einzeln/flat/base.svg.template
  42. 2
      grafik/bilder-einzeln/flat/generate-graphics.py
  43. 0
      grafik/bilder-einzeln/flat/replacements.py
  44. 2
      grafik/bilder-einzeln/grau/Makefile
  45. 0
      grafik/bilder-einzeln/grau/neo-grau-123456.svg
  46. 27
      grafik/bilder-uebersicht/Makefile
  47. 135
      grafik/bilder-uebersicht/all-grau-123456.php
  48. 0
      grafik/bilder-uebersicht/neo-bunt-1234.svg
  49. BIN
      grafik/bilder-uebersicht/neo-bunt-123456.ods
  50. 0
      grafik/bilder-uebersicht/neo-bunt-1235.svg
  51. 0
      grafik/bilder-uebersicht/neo-bunt-1256.svg
  52. 0
      grafik/bilder-uebersicht/neo-grau-1235.svg
  53. 0
      grafik/bilder-uebersicht/neo-matrix.svg
  54. 27
      grafik/common.mk
  55. 6514
      grafik/druckvorlage/Druckvorlage_Ebenen_1-4_SW.svg
  56. 22
      grafik/druckvorlage/README.md
  57. BIN
      grafik/druckvorlage/Tastenaufkleber_Neo2__SW_6erBlock.pdf
  58. BIN
      grafik/druckvorlage/Tastenaufkleber_Neo2__SW_6erBlock.png
  59. 2
      grafik/handbuch-cover/Makefile
  60. 0
      grafik/handbuch-cover/cover.svg
  61. 12
      grafik/heatmap/Makefile
  62. BIN
      grafik/heatmap/heatmap.png
  63. 3
      grafik/heatmap/heatmap.py
  64. BIN
      grafik/heatmap/neo.png
  65. 18
      grafik/logos/Makefile
  66. BIN
      grafik/logos/Neo-Icon.ico
  67. 0
      grafik/logos/_unused/neo-badges.svg
  68. 0
      grafik/logos/_unused/neo-icon-rot.svg
  69. 0
      grafik/logos/_unused/neo-logo-e.svg
  70. 0
      grafik/logos/_unused/neo-logo-eps.svg
  71. 0
      grafik/logos/_unused/neo-logo-vorschlaege.svg
  72. 0
      grafik/logos/bone-icon.svg
  73. 0
      grafik/logos/bone-schriftzug.svg
  74. 0
      grafik/logos/neo-icon.svg
  75. 0
      grafik/logos/neo-schriftzug.svg
  76. BIN
      grafik/logos/neo-taste.ico
  77. 0
      grafik/logos/neoqwertz-icon.svg
  78. 0
      grafik/logos/neoqwertz-schriftzug.svg
  79. 2
      grafik/maskottchen/Makefile
  80. 3350
      grafik/tastatur2d/neo_Alle_Ebenen.svg
  81. 70
      grafik/tastatur2d/neo_basierend_auf_wikipedias_KB_Germany.txt

@ -0,0 +1,11 @@
Unless specified otherwise, all the artwork in this directory and its
subdirectories is licensed under the CC-BY-SA 3.0 license. You can obtain a copy
of this license at https://creativecommons.org/licenses/by-sa/3.0/legalcode .
Some Pictures are based on
https://commons.wikimedia.org/wiki/File:KB_Germany.svg (version from 2007)
which is also CC-BY-SA 3.0-licensed.
Unless specified otherwise, Scripts generating graphics are licensed under GPLv3
or later, which is provided in the COPYING file in the top level directory of
this repository.

@ -1,84 +1,22 @@
EBENEN=$(foreach i, 1 1Caps 2 2Caps 3 4 5 6, tastatur_neo_Ebene${i}.svg)
EBENENSVG=$(foreach file, ${EBENEN}, tastatur3d/${file})
HAUPT=$(foreach file, ${EBENEN}, tastatur3d/hauptfeld/${file})
ZIFFERN=$(foreach file, ${EBENEN}, tastatur3d/ziffernfeld/${file})
HAUPTZIFFERN=$(foreach file, ${EBENEN}, tastatur3d/haupt_ziffern_feld/${file})
EBENENPDF=$(addsuffix .pdf,$(basename ${EBENENSVG}))
EBENENPNG=$(addsuffix .png,$(basename ${EBENENSVG} ${HAUPT} ${ZIFFERN} ${HAUPTZIFFERN}))
SVGFILES=$(filter-out ./tastatur3d/tastatur_neo_%.svg, $(shell find -name "*.svg")) ref2svg/ref2svg.svg
PDFFILES=$(filter-out ./promotion-material/Flyer-fs/neo_logo.pdf, $(addsuffix .pdf,$(basename ${SVGFILES})))
PNGFILES=$(addsuffix .png,$(basename ${SVGFILES}))
default: svg pdf png
ref2svg/ref2svg.svg: ref2svg/ref2svg.pl ../A-REFERENZ-A/neo20.txt
cd ref2svg/; \
./ref2svg.pl > ref2svg.svg
svg: ref2svg/ref2svg.svg
pdf: ${PDFFILES} ${EBENENPDF} svg
png: ${PNGFILES} ${EBENENPNG} www svg
www: $(addsuffix .png,$(basename $(shell find ../www -name "*.svg")))
clean: cleansvg cleanpng cleanpdf
cleanebenen:
rm -f ${EBENENSVG} ${EBENENPNG} ${EBENENPDF}
$(foreach dir, hauptfeld ziffernfeld haupt_ziffern_feld, if [ -d tastatur3d/${dir} ];then rmdir tastatur3d/${dir}; fi;)
cleansvg:
rm -f ref2svg/ref2svg.svg
cleanpng: cleanebenen
rm -f ${PNGFILES}
cleanpdf:
rm -f ${PDFFILES}
.SECONDARY:
tastatur3d/tastatur_neo_Ebene%.svg: tastatur3d/tastatur_neo_alle_Ebenen.svg
/bin/echo -e '/inkscape:label="Ebene $*"\n.+1\ns/none/inline/g\nw $@'|ed $<
tastatur3d/hauptfeld/%.png: tastatur3d/%.svg
mkdir -p tastatur3d/hauptfeld
inkscape --without-gui --export-id="Haupttastaturfeld" --export-png=$@ -h200 tastatur3d/$*.svg
optipng $@
tastatur3d/ziffernfeld/%.png: tastatur3d/%.svg
mkdir -p tastatur3d/ziffernfeld
inkscape --without-gui --export-id="Ziffernblock" --export-png=$@ -h200 tastatur3d/$*.svg
optipng $@
tastatur3d/haupt_ziffern_feld/%.png: tastatur3d/hauptfeld/%.png tastatur3d/ziffernfeld/%.png
mkdir -p tastatur3d/haupt_ziffern_feld
convert -splice 20x0 -background transparent -colors 256 -type Palette +dither -alpha off -alpha on tastatur3d/ziffernfeld/$*.png /tmp/$*_tmp.png
convert +append tastatur3d/hauptfeld/$*.png /tmp/$*_tmp.png $@
rm /tmp/$*_tmp.png
optipng $@
%.pdf: %.svg
inkscape --without-gui --export-pdf=$@ $<
../www/%.png: ../www/%.svg
inkscape --without-gui --export-png=$@ $<
optipng $@
%.png: %.svg
inkscape --without-gui --export-png=$@ -w1000 $<
optipng $@
FLATPNGS:=$(patsubst %.svg,%.png,$(wildcard flat/tastatur_e*.svg))
$(FLATPNGS): flat/tastatur.css flat/tastatur_base.svg
$(FLATPNGS): %.png: %.svg
sed -e "/^@import url('tastatur.css');$$/{r flat/tastatur.css" -e 'd;}' "$<" > "$<.imported.svg"
inkscape --without-gui --export-png="$@" "$<.imported.svg"
optipng "$@"
rm "$<.imported.svg"
.PHONY: default clean \
pdf cleanpdf \
png cleanpng \
ebenen cleanebenen \
svg cleansvg
# directories to recursively
SUBDIRS=\
aufkleber \
aufsteller \
bilder-einzeln \
bilder-uebersicht \
handbuch-cover \
heatmap \
logos \
maskottchen
default_rule: all
TARGETS=all svg svg-path pdf png clean
.PHONY: ${TARGETS}
# build the target of the same name in each subdirectory
$(TARGETS):
for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir $@; \
done

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 179 KiB

@ -1,55 +0,0 @@
<?php
if ($argc == 1) {
echo("Usage: ./neo_svg.php [neo20|bone|neoqwertz]\n");
exit(1);
}
# Referenz laden
$layout = $argv[1];
$reference = file_get_contents('http://neo-layout.org/git/A-REFERENZ-A/' . $layout . ".txt");
# Haupttastatur finden
preg_match('/┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────────┐\n(.*)\n└──────┴──────┴──────┴──────────────────────────────────────┴──────┴──────┴──────┴──────┘/s', $reference, $found);
# Tastaturreihen aufspalten
$rows = preg_split('/\n├.*\n/', $found[1]);
$n = 1;
# Für jede Reihe:
foreach ($rows as $row) {
$sub_rows = preg_split('/\n/', $row);
# Finde Zeichen in beiden Zeilen.
# U030F ist ein combining-character und tritt zusammen mit einem Leerzeichen auf, damit es angezeigt wird
preg_match_all('/│(.) (\x{030F} |.) (.)(?=│)/u', $sub_rows[0], $r1);
preg_match_all('/│(.) (.) (.)(?=│)/u', $sub_rows[1], $r2);
# Für jede Taste:
for ($i = 0; $i < count($r1[0]); $i++) {
# Überspringe Enter-Taste, die nicht dazugehört
if ($r1[2][$i] == "⏎" && $i == 11) {
$n--;
continue;
}
# Lade die Zeichen der beiden Zeilen in das Array, geordnet nach ihrer Ebene
$key[$n+$i.'_1'] = $r2[1][$i];
$key[$n+$i.'_2'] = $r1[1][$i];
$key[$n+$i.'_3'] = $r2[2][$i];
$key[$n+$i.'_4'] = $r1[2][$i];
$key[$n+$i.'_5'] = $r2[3][$i];
$key[$n+$i.'_6'] = $r1[3][$i];
}
$n += $i;
}
# Lade das "rohe" SVG
$svg = file_get_contents('neo_raw.svg');
# Ersetze die Platzhalter mit den Zeichen aus dem Array
foreach ($key as $search => $replace) {
# Die Zeichen werden in HTML-NCRs (numeric character references) umgewandelt, damit sie nicht falsch interpretiert werden.
$svg = preg_replace('/{'.preg_quote($search).'}/', mb_encode_numericentity ($replace, array (0x0, 0xffff, 0, 0xffff), 'UTF-8'), $svg);
}
# Speichern und Fertig
file_put_contents($layout . '.svg', $svg);
?>

@ -0,0 +1,36 @@
# Readme
Die meisten der Neo-Grafiken gibt es in vier Formaten:
- svg
- svg mit Text in Pfade umgewandelt
- png
- pdf
In diesem Reposity befinden sich aber nur svgs und Skripte, mit denen man noch
mehr svgs (aus Treibern oder Referenzen) und daraus dann die anderen Formate
erstellt. Die fertigen Grafiken befinden sich aber auf
https://dl.neo-layout.org/grafik .
Um alle Bilder erzeugen können, benötigt man eine Vielzahl an Abhängigkeiten:
- make
- inkscape
- optipng
- imagemagick
- libicns
- libreoffice
- sed
- ed
- setxkbmap und xkbcomp
- python mit numpy, pandas, matplotlib und seaborn
- perl mit XML::Writer
- php
- Linux Libertine
- Gentium Plus Compact
- DejaVu Sans Mono
- vermutlich noch weitere Schriften
Sind alle Abhängigkeiten erfüllt, sollte man alle Bilder mit `make` erstellen
können. Man kann `make` auch in jedem Unterverzeichnis ausführen, um jeweils
weniger Bilder zu generieren. Außerdem können gewünschte Formate oder gar
Dateinamen direkt als Target übergeben werden•
`

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

@ -0,0 +1,11 @@
all: default
%-grau-1234.svg: ../../A-REFERENZ-A/%.txt
./alle-grau-1234.pl $< > $@
EXTRASVG=\
neo20-grau-1234.svg \
bone-grau-1234.svg \
neoqwertz-grau-1234.svg
include ../common.mk

@ -1,4 +1,4 @@
#!/usr/bin/perl -wT
#!/usr/bin/env -S perl -wT
use strict;
use warnings;
@ -63,7 +63,7 @@ exit;
# parse reference and return multi-array
sub parse_ref {
my @letters;
open REF, "../../A-REFERENZ-A/neo20.txt"
open REF, $ARGV[0]
or die 'Error opening reference: '.$!;
while (<REF>) {
my @layer;

Before

Width:  |  Height:  |  Size: 687 KiB

After

Width:  |  Height:  |  Size: 687 KiB

Before

Width:  |  Height:  |  Size: 679 KiB

After

Width:  |  Height:  |  Size: 679 KiB

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 310 KiB

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Before

Width:  |  Height:  |  Size: 433 KiB

After

Width:  |  Height:  |  Size: 433 KiB

@ -0,0 +1,2 @@
all: default
include ../common.mk

Before

Width:  |  Height:  |  Size: 289 KiB

After

Width:  |  Height:  |  Size: 289 KiB

Before

Width:  |  Height:  |  Size: 567 KiB

After

Width:  |  Height:  |  Size: 567 KiB

@ -0,0 +1,58 @@
EBENENNAMEN=1 1Caps 2 2Caps 3 4 5 6
BONE=$(foreach i, ${EBENENNAMEN}, bone-ebene${i}.svg)
NEO=$(foreach i, ${EBENENNAMEN}, neo-ebene${i}.svg)
KYRILLISCH=$(foreach i, ${EBENENNAMEN}, kyrillisch-ebene${i}.svg)
EBENENSVG=${BONE} ${NEO} ${KYRILLISCH}
HAUPT=$(foreach file, ${EBENENSVG}, hauptfeld/${file})
ZIFFERN=$(foreach file, ${EBENENSVG}, ziffernfeld/${file})
HAUPTZIFFERN=$(foreach file, ${EBENENSVG}, haupt_ziffern_feld/${file})
EBENENPDF=$(addsuffix .pdf,$(basename ${EBENENSVG}))
EBENENPNG=$(addsuffix .png,$(basename ${EBENENSVG} ${HAUPT} ${ZIFFERN} ${HAUPTZIFFERN}))
EBENENSVGPATH=$(addsuffix .path.svg,$(basename ${EBENENSVG}))
all: svg pdf png svg-path
svg: ${EBENENSVG}
svg-path: ${EBENENSVGPATH}
pdf: ${EBENENPDF}
png: ${EBENENPNG}
clean:
rm -f ${EBENENSVG} ${EBENENPNG} ${EBENENPDF} ${EBENENSVGPATH}
$(foreach dir, hauptfeld ziffernfeld haupt_ziffern_feld, if [ -d ${dir} ];then rmdir ${dir}; fi;)
$(BONE): bone-ebene%.svg: bone.svg.template
echo -e '/inkscape:label="Ebene $*"\n.+1\ns/none/inline/g\nw $@'|ed $<
$(NEO): neo-ebene%.svg: neo.svg.template
echo -e '/inkscape:label="Ebene $*"\n.+1\ns/none/inline/g\nw $@'|ed $<
$(KYRILLISCH): kyrillisch-ebene%.svg: kyrillisch.svg.template
echo -e '/inkscape:label="Ebene $*"\n.+1\ns/none/inline/g\nw $@'|ed $<
hauptfeld/%.png: %.svg
mkdir -p hauptfeld
inkscape --export-id="Haupttastaturfeld" --export-filename=$@ --export-height=200 $<
optipng $@
ziffernfeld/%.png: %.svg
mkdir -p ziffernfeld
inkscape --export-id="Ziffernblock" --export-filename=$@ --export-height=200 $<
optipng $@
haupt_ziffern_feld/%.png: hauptfeld/%.png ziffernfeld/%.png
mkdir -p haupt_ziffern_feld
convert -splice 20x0 -background transparent -colors 256 -type Palette +dither -alpha off -alpha on ziffernfeld/$*.png /tmp/$*_tmp.png
convert +append hauptfeld/$*.png /tmp/$*_tmp.png $@
rm /tmp/$*_tmp.png
optipng $@
%.pdf: %.svg
inkscape --export-filename=$@ $<
%.png: %.svg
inkscape --export-filename=$@ --export-width=1000 $<
optipng $@
%.path.svg: %.svg
inkscape --export-filename=$@ -T $<

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 953 KiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 970 KiB

After

Width:  |  Height:  |  Size: 970 KiB

@ -0,0 +1,18 @@
# directories to recursively
SUBDIRS=\
3d \
bunt-einfach \
flat \
grau
default_rule: all
TARGETS=all svg svg-path pdf png clean
.PHONY: ${TARGETS}
# build the target of the same name in each subdirectory
$(TARGETS):
for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir $@; \
done

@ -0,0 +1,2 @@
all: default
include ../../common.mk

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

@ -1,12 +1,16 @@
VARIANTS=neo bone neo_qwertz neo_qwerty koy adnw
LAYERS=1 2 3 4 5 6 Pseudoebene
VERSIONS=numpad tkl
SUFFIXES=$(foreach version, ${VERSIONS}, $(foreach layer, ${LAYERS}, -Ebene-${layer}-${version}.svg))
SUFFIXES=$(foreach version, ${VERSIONS}, $(foreach layer, ${LAYERS}, -${layer}-${version}.svg))
SVG_TARGETS=$(foreach suffix, ${SUFFIXES}, $(foreach variant, ${VARIANTS}, ${variant}${suffix}))
SVG_PATH_TARGETS=$(addsuffix .path.svg,$(basename ${SVG_TARGETS}))
PDF_TARGETS=$(addsuffix .pdf,$(basename ${SVG_TARGETS}))
PNG_TARGETS=$(addsuffix .png,$(basename ${SVG_TARGETS}))
SOURCES=generate-graphics.py replacements.py base.svg.template
default: all cleansvg cleanpycache
svg-path: ${SVG_PATH_TARGETS}
svg: ${SVG_TARGETS}
pdf: ${PDF_TARGETS}
png: ${PNG_TARGETS}
@ -15,7 +19,9 @@ $(foreach suffix, ${SUFFIXES}, %${suffix}) &: ${SOURCES}
@echo "Erzeuge $@."
./generate-graphics.py `echo $@ | cut -d - -f 1` numpad
./generate-graphics.py `echo $@ | cut -d - -f 1`
inkscape --export-filename=$@ -T $@
%.path.svg: %.svg
inkscape --export-filename=$@ -T $<
%.pdf: %.svg
inkscape --export-filename=$@ $<
@ -24,7 +30,10 @@ $(foreach suffix, ${SUFFIXES}, %${suffix}) &: ${SOURCES}
inkscape --export-filename=$@ --export-height=183 $<
optipng $@
all: svg pdf png
all: svg-path svg pdf png
cleansvgpath:
rm -f ${SVG_PATH_TARGETS}
cleansvg:
rm -f ${SVG_TARGETS}
@ -34,5 +43,7 @@ cleanpng:
cleanpdf:
rm -f ${PDF_TARGETS}
cleanpycache:
rm -rf __pycache__
clean: cleansvg cleanpng cleanpdf
clean: cleansvgpath cleansvg cleanpng cleanpdf cleanpycache

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@ -53,7 +53,7 @@ with open('/tmp/keymap', 'r') as file:
layerdict["numpad"] = numpad
layerdict["swap_m3r_ä"] = swap_m3r_ä
versionstring = "-numpad" if numpad else "-tkl"
out = open(layout + "-Ebene-" + layernames[layer] + versionstring + ".svg", "w")
out = open(layout + "-" + layernames[layer] + versionstring + ".svg", "w")
with open(templatename) as templatefile:
template = Template(templatefile.read())
out.write(template.render(layerdict))

@ -0,0 +1,2 @@
all: default
include ../../common.mk

@ -0,0 +1,27 @@
all: default neo-bunt-123456.pdf neo-bunt-123456.png
neo-bunt-123456.pdf: neo-bunt-123456.ods
libreoffice --convert-to pdf $<
neo-bunt-123456.png: neo-bunt-123456.ods
libreoffice --convert-to png $<
neo20-grau-123456.svg:
./all-grau-123456.php neo20
bone-grau-123456.svg:
./all-grau-123456.php bone
neoqwertz-grau-123456.svg:
./all-grau-123456.php neoqwertz
EXTRASVG=\
neo20-grau-123456.svg \
bone-grau-123456.svg \
neoqwertz-grau-123456.svg
EXTRAPDF=neo-bunt-123456.pdf
EXTRAPNG=neo-bunt-123456.png
include ../common.mk

@ -1,3 +1,127 @@
#!/usr/bin/env php
<?php
/* Dieser Textabschnitt befand sich vorher (etwa bei Commit 705fac448a0d0562e4e1bc16bf0b6cadbe235771)
in einer separaten Datei "neo_basierend_auf_wikipedias_KB_Germany.txt".
Ich denke, er bezieht sich auf das Template, das hier weiter unten geinlint ist
und habe ihn mal in diese Datei eingefügt, damit er nicht verloren geht.
-- hrnz
== Quelle ==
Die Datei wurde vom Wikipedia-Bild „KB_Germany.svg“ mit Inkscape angepasst.
Quelle: http://upload.wikimedia.org/wikipedia/commons/3/36/KB_Germany.svg
Stand: Januar 2007
Angepasst von Erik Streb (mail at erikstreb dot de)
== Dokumenteneinstellungen ==
=== Einrasten ===
- Umrandungsboxen am Gitter einrasten
- Einrastempfindlichkeit ca. 10
=== Gitter/Führungslinien ===
Die Tasten sind auf einem Raster von 60 mal 60 Pixeln erstellt. Daher Abstand
X und Abstand Y = 60.
Die Startpositionen des Rasters (Ursprung X und Ursprung Y) für die Beschriftung der
einzelnen Tasten sind unten angegeben als Ux und Uy.
Immer (außer bei Ausnahmen) muss die Beschriftung von oben rechts aus
angepasst werden.
== Schrift ==
Was Schrift Größe Fett
Buchstaben DejaVu LGC Sans 22 Ja
Modifikatoren DejaVu LGC Sans 14 Ja
== Gitterursprung ==
=== Für die einzelnen Reihen und Ebenen ===
Tastatur Position Ebene Zeichen Ux Uy Ax Ay
0. Reihe 1. X 9 7 60 60
1. Reihe 1. X 39 7 60 60
3. Reihe 1. X 24 7 60 60
0. Reihe 2. X 9 37 60 60
1. Reihe 2. X 39 37 60 60
2. Reihe 2. X 54 37 60 60
3. Reihe 2. X 24 37 60 60
0. Reihe 3. X 37 7 60 60
1. Reihe 3. X 7 7 60 60
2. Reihe 3. X 22 7 60 60
3. Reihe 3. X 52 7 60 60
0. Reihe 4. X 37 37 60 60
1. Reihe 4. X 7 37 60 60
2. Reihe 4. X 22 37 60 60
3. Reihe 4. X 52 37 60 60
=== Für die Modifier ===
Bei Strg für Positionierung das „g“ wegnehmen und links ausrichten.
Modifier ganz links und auch rechtes Mod3:
Ux 9
Uy 25 oder 40 (linkes Shift)
Alt, rechte Strg und Menü:
Ux 39
Uy 25
Alt Option:
Ux 35
Uy 15
Enter (rechts ausrichten, von oben links anpassen):
Ux 51
Uy 40
Backspace (von unten rechts anpassen):
Ux 9
Uy 25
*/
if ($argc == 1) {
echo("Usage: ./neo_svg.php [neo20|bone|neoqwertz]\n");
exit(1);
}
# Referenz laden
$layout = $argv[1];
$reference = file_get_contents('http://neo-layout.org/git/A-REFERENZ-A/' . $layout . ".txt");
# Haupttastatur finden
preg_match('/┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────────┐\n(.*)\n└──────┴──────┴──────┴──────────────────────────────────────┴──────┴──────┴──────┴──────┘/s', $reference, $found);
# Tastaturreihen aufspalten
$rows = preg_split('/\n├.*\n/', $found[1]);
$n = 1;
# Für jede Reihe:
foreach ($rows as $row) {
$sub_rows = preg_split('/\n/', $row);
# Finde Zeichen in beiden Zeilen.
# U030F ist ein combining-character und tritt zusammen mit einem Leerzeichen auf, damit es angezeigt wird
preg_match_all('/│(.) (\x{030F} |.) (.)(?=│)/u', $sub_rows[0], $r1);
preg_match_all('/│(.) (.) (.)(?=│)/u', $sub_rows[1], $r2);
# Für jede Taste:
for ($i = 0; $i < count($r1[0]); $i++) {
# Überspringe Enter-Taste, die nicht dazugehört
if ($r1[2][$i] == "⏎" && $i == 11) {
$n--;
continue;
}
# Lade die Zeichen der beiden Zeilen in das Array, geordnet nach ihrer Ebene
$key[$n+$i.'_1'] = $r2[1][$i];
$key[$n+$i.'_2'] = $r1[1][$i];
$key[$n+$i.'_3'] = $r2[2][$i];
$key[$n+$i.'_4'] = $r1[2][$i];
$key[$n+$i.'_5'] = $r2[3][$i];
$key[$n+$i.'_6'] = $r1[3][$i];
}
$n += $i;
}
# Lade das "rohe" SVG
$svg = <<<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
@ -3339,3 +3463,14 @@
y="239.62675">{46_6}</tspan></text>
</g>
</svg>
EOF;
# Ersetze die Platzhalter mit den Zeichen aus dem Array
foreach ($key as $search => $replace) {
# Die Zeichen werden in HTML-NCRs (numeric character references) umgewandelt, damit sie nicht falsch interpretiert werden.
$svg = preg_replace('/{'.preg_quote($search).'}/', mb_encode_numericentity ($replace, array (0x0, 0xffff, 0, 0xffff), 'UTF-8'), $svg);
}
# Speichern und Fertig
file_put_contents($layout . '-grau-123456.svg', $svg);
?>

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 183 KiB

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 257 KiB

@ -0,0 +1,27 @@
SVGFILES=$(filter-out $(wildcard *.path.svg */*.path.svg), $(wildcard *.svg */*.svg)) ${EXTRASVG}
SVGPATHFILES=$(addsuffix .path.svg,$(basename ${SVGFILES}))
PDFFILES=$(addsuffix .pdf,$(basename ${SVGFILES})) ${EXTRAPDF}
PNGFILES=$(addsuffix .png,$(basename ${SVGFILES})) ${EXTRAPNG}
default: svg-path svg pdf png
svg: ${EXTRASVG}
svg-path: ${SVGPATHFILES}
pdf: ${PDFFILES}
png: ${PNGFILES}
clean:
rm -f ${EXTRASVG} ${SVGPATHFILES} ${PDFFILES} ${PNGFILES} ${EXTRAPDF} ${EXTRAPNG} ${EXTRACLEAN}
%.path.svg: %.svg
inkscape --export-filename=$@ -T $<
%.pdf: %.svg
inkscape --export-filename=$@ $<
%.png: %.svg
inkscape --export-filename=$@ --export-width=2000 $<
optipng $@

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 384 KiB

@ -1,22 +0,0 @@
## Dateien
neo-druckvorlage.svg
: Zum Erstellen der Tastaturaufkleber
neo-druckvorlage-hc.svg
: Eine inhaltlich veraltete Version, die aber die Modifiertasten
farblich überarbeitet.
### Begründung gegen das aktuelle Farbkonzept
- die blau-rot-gestrichelten Rähmchen erschließen sich auch bei
längerem Nachdenken nur schwer
- die Information ist zum Teil aus der Hintergrundfarbe zu entnehmen,
bei anderen Ebenen aber aus der Pfeilfarbe. Das ist inkonsistent.
- die Hintergrundfarben der Modifiertasten sind zu ähnlich der
Farbpalette der normalen Tasten
- die dicken Rahmen gehen beim Ausschneiden/Stanzen ohnehin verloren

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 KiB

@ -0,0 +1,2 @@
all: default
include ../common.mk

Before

Width:  |  Height:  |  Size: 402 KiB

After

Width:  |  Height:  |  Size: 402 KiB

@ -0,0 +1,12 @@
all: heatmap.png
neo.png:
$(MAKE) -C "../bilder-einzeln/flat/" neo-1-tkl.png
cp ../bilder-einzeln/flat/neo-1-tkl.png neo.png
heatmap.png: heatmap.py faust.txt neo.png
./heatmap.py
EXTRAPNG=heatmap.png neo.png
include ../common.mk

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

@ -1,4 +1,5 @@
#!/usr/bin/env python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

@ -0,0 +1,18 @@
LAYOUTS = neo neoqwertz bone
ICOFILES = $(addsuffix -icon.ico, ${LAYOUTS})
ICNSFILES = $(addsuffix -icon.ico, ${LAYOUTS})
EXTRACLEAN = ${ICOFILES} ${ICNSFILES}
all: default ico
ico: ${ICOFILES}
ico: ${ICNSFILES}
%.ico: %.png
convert $< -define icon:auto-resize=16,32,48,128,256 $@
# TODO: find a way to generate icns icons a normal loonix machine
include ../common.mk

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

@ -0,0 +1,2 @@
all: default
include ../common.mk

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 207 KiB

@ -1,70 +0,0 @@
== Quelle ==
Die Datei wurde vom Wikipedia-Bild „KB_Germany.svg“ mit Inkscape angepasst.
Quelle: http://upload.wikimedia.org/wikipedia/commons/3/36/KB_Germany.svg
Stand: Januar 2007
Angepasst von Erik Streb (mail at erikstreb dot de)
== Dokumenteneinstellungen ==
=== Einrasten ===
- Umrandungsboxen am Gitter einrasten
- Einrastempfindlichkeit ca. 10
=== Gitter/Führungslinien ===
Die Tasten sind auf einem Raster von 60 mal 60 Pixeln erstellt. Daher Abstand
X und Abstand Y = 60.
Die Startpositionen des Rasters (Ursprung X und Ursprung Y) für die Beschriftung der
einzelnen Tasten sind unten angegeben als Ux und Uy.
Immer (außer bei Ausnahmen) muss die Beschriftung von oben rechts aus
angepasst werden.
== Schrift ==
Was Schrift Größe Fett
Buchstaben DejaVu LGC Sans 22 Ja
Modifikatoren DejaVu LGC Sans 14 Ja
== Gitterursprung ==
=== Für die einzelnen Reihen und Ebenen ===
Tastatur Position Ebene Zeichen Ux Uy Ax Ay
0. Reihe 1. X 9 7 60 60
1. Reihe 1. X 39 7 60 60
3. Reihe 1. X 24 7 60 60
0. Reihe 2. X 9 37 60 60
1. Reihe 2. X 39 37 60 60
2. Reihe 2. X 54 37 60 60
3. Reihe 2. X 24 37 60 60
0. Reihe 3. X 37 7 60 60
1. Reihe 3. X 7 7 60 60
2. Reihe 3. X 22 7 60 60
3. Reihe 3. X 52 7 60 60
0. Reihe 4. X 37 37 60 60
1. Reihe 4. X 7 37 60 60
2. Reihe 4. X 22 37 60 60
3. Reihe 4. X 52 37 60 60
=== Für die Modifier ===
Bei Strg für Positionierung das „g“ wegnehmen und links ausrichten.
Modifier ganz links und auch rechtes Mod3:
Ux 9
Uy 25 oder 40 (linkes Shift)
Alt, rechte Strg und Menü:
Ux 39
Uy 25
Alt Option:
Ux 35
Uy 15
Enter (rechts ausrichten, von oben links anpassen):
Ux 51
Uy 40
Backspace (von unten rechts anpassen):
Ux 9
Uy 25
Loading…
Cancel
Save