Compare commits
No commits in common. "master" and "master" have entirely different histories.
6
.gitignore
vendored
@ -1,10 +1,7 @@
|
||||
.*.swp
|
||||
.DS_Store
|
||||
|
||||
# /
|
||||
/.project
|
||||
/.pydevproject
|
||||
__pycache__
|
||||
|
||||
# /linux/osd/
|
||||
/linux/osd/*.pyc
|
||||
@ -28,9 +25,6 @@ __pycache__
|
||||
/windows/kbdneo2/source/.vs
|
||||
/windows/kbdneo2/source/**/Release
|
||||
/windows/kbdneo2/source/**/*.vcxproj.user
|
||||
/windows/kbdneo2/source/**/x64/
|
||||
/windows/kbdneo2/source/**/x86/
|
||||
/windows/kbdneo2/source/**/x86-wow64/
|
||||
|
||||
# /windows/kbdneo2/AHK-supplement/
|
||||
/windows/kbdneo2/AHK-supplement/bone/kbdbone.exe
|
||||
|
@ -28,7 +28,7 @@ $(if $(findstring _,$(M)), \
|
||||
# Hilfsprogramme
|
||||
#
|
||||
CHECKCOMPOSE = ./check-compose.pl
|
||||
CONFIGURE = bash ./configure.sh
|
||||
CONFIGURE = /bin/bash ./configure.sh
|
||||
|
||||
# Nutzerkonfiguration für Zusammenstellung der Datei XCompose.
|
||||
# Datei .config wird von 'make config' interaktiv geschrieben.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env -S perl -w
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Dieses Skript prüft übergebene Compose-Dateien auf
|
||||
# Präfix-Eigenschaft und auf Code-Dopplungen
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
# This file is part of the german Neo keyboard layout
|
||||
#
|
||||
|
@ -22,11 +22,6 @@
|
||||
<U21BB> <dead_cedilla> <space> : "˛" U02DB # OGONEK
|
||||
<dead_belowdot> <space> : "." U002E # FULL STOP
|
||||
|
||||
# change standard definitions for some dead keys with spaces
|
||||
<dead_acute> <space> : "´" U00B4 # ACUTE ACCENT
|
||||
<dead_diaeresis> <space> : "¨" U00A8 # DIAERESIS
|
||||
<dead_doubleacute> <space> : "\"" quotedbl # QUOTATION MARK
|
||||
|
||||
# letters
|
||||
# latin letters with ogonek (simplifying the keyboard ogonek and cedilla are on the same place)
|
||||
<dead_cedilla> <A> : "Ą" U0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
@ -43,8 +38,6 @@
|
||||
<dead_macron> <dead_cedilla> <o> : "ǭ" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
|
||||
<U21BB> <dead_cedilla> <E> : "Ȩ" U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
|
||||
<U21BB> <dead_cedilla> <e> : "ȩ" U0229 # LATIN SMALL LETTER E WITH CEDILLA
|
||||
<dead_cedilla> <Adiaeresis> : "Ȩ" U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
|
||||
<dead_cedilla> <adiaeresis> : "ȩ" U0229 # LATIN SMALL LETTER E WITH CEDILLA
|
||||
|
||||
# latin letters with line below (simplifying the keyboard line below and macron are on the same place)
|
||||
<dead_macron> <B> : "Ḇ" U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW
|
||||
|
@ -18,9 +18,3 @@
|
||||
<Multi_key> <bracketleft> <bracketright> : "⌷" U2337 # [ ] APL FUNCTIONAL SYMBOL SQUISH QUAD
|
||||
# Konflikt bei Sequenz <Multi_key <question> <exclam>. Unsere Sequenz »<Multi_key> <question> <exclam> : "⁈" U2048 # QUESTION EXCLAMATION MARK« überschreibt die folgende Sequenz aus enUS.module
|
||||
<Multi_key> <question> <exclam> : "⸘" U2E18 # INVERTED INTERROBANG
|
||||
# Konflikt bei Sequenz <dead_acute> <space>. Unsere Sequenz »<dead_acute> <space> : "´" U00B4 # ACUTE ACCENT« überschreibt die folgende Sequenz aus enUS.module
|
||||
<dead_acute> <space> : "'" apostrophe # APOSTROPHE
|
||||
# Konflikt bei Sequenz <dead_diaeresis> <space>. Unsere Sequenz »<dead_diaeresis> <space> : "¨" U00A8 # DIAERESIS« überschreibt die folgende Sequenz aus enUS.module
|
||||
<dead_diaeresis> <space> : "\"" quotedbl # REVERSE SOLIDUS
|
||||
# Konflikt bei Sequenz <dead_doubleacute> <space>. Unsere Sequenz »<dead_doubleacute> <space> : "\"" quotedbl # QUOTATION MARK« überschreibt die folgende Sequenz aus enUS.module
|
||||
<dead_doubleacute> <space> : "˝" U2dd # DOUBLE ACUTE ACCENT
|
||||
|
@ -1,4 +1,4 @@
|
||||
#configinfo Oxia statt Tonos für griechisch
|
||||
#configinfo Oxia statt oxia für griechisch
|
||||
|
||||
<dead_acute> <Multi_key> <g> <A> : "Ά" U1FBB # GREEK CAPITAL LETTER ALPHA WITH OXIA
|
||||
<dead_acute> <Multi_key> <G> <A> : "Ά" U1FBB # GREEK CAPITAL LETTER ALPHA WITH OXIA
|
||||
|
@ -230,7 +230,7 @@
|
||||
<Multi_key> <apostrophe> <apostrophe> : "ˈ" U02C8 # MODIFIER LETTER VERTICAL LINE
|
||||
<Multi_key> <underscore> <apostrophe> : "ˌ" U02CC # MODIFIER LETTER LOW VERTICAL LINE
|
||||
<U21BB> <Multi_key> <apostrophe> <apostrophe> : "ˌ" U02CC # MODIFIER LETTER LOW VERTICAL LINE
|
||||
<U21BB> <parenright> : "͜" U035C # COMBINING DOUBLE BREVE BELOW
|
||||
<U21BB> <parenright> : "‿" U203F # UNDERTIE
|
||||
<U21BB> <parenleft> : "͡" U0361 # COMBINING DOUBLE INVERTED BREVE
|
||||
|
||||
# tone letters (t) and Standard Mandarin tones
|
||||
|
@ -676,11 +676,12 @@
|
||||
# physical symbols
|
||||
# physical constants
|
||||
<Multi_key> <p> <h> <space> : "ℎ" U210E # PLANCK CONSTANT
|
||||
<Multi_key> <minus> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<Multi_key> <p> <h> <minus> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<Multi_key> <KP_Subtract> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<Multi_key> <p> <h> <KP_Subtract> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<Multi_key> <slash> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<Multi_key> <p> <h> <slash> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<dead_macron> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
<dead_stroke> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI
|
||||
|
||||
# physical units
|
||||
<Multi_key> <m> <i> <c> <r> <o> : "µ" U00B5 # MICRO SIGN
|
||||
|
@ -110,3 +110,9 @@
|
||||
<Multi_key> <asciicircum> <bar> : "↑" U2191 # UPWARDS ARROW
|
||||
# Konflikt bei Sequenz <Multi_key> <v> <slash>. Unsere Sequenz »<Multi_key> <v> <slash> <asciicircum> : "⤢" U2922 # NORTH EAST AND SOUTH WEST ARROW« überschreibt die folgende Sequenz aus enUS.module
|
||||
<Multi_key> <v> <slash> : "√" U221a # v / SQUARE ROOT
|
||||
# Konflikt bei Sequenz <Multi_key> <minus> <p>. Unsere Sequenz »<Multi_key> <minus> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI« überschreibt die folgende Sequenz aus lang.module
|
||||
<Multi_key> <minus> <p> : "ᵽ" U1D7D # LATIN SMALL LETTER P WITH STROKE
|
||||
# Konflikt bei Sequenz <dead_stroke> <p>. Unsere Sequenz »<dead_stroke> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI« überschreibt die folgende Sequenz aus enUS.module
|
||||
<dead_stroke> <p> : "ᵽ" U1D7D # LATIN SMALL LETTER P WITH STROKE
|
||||
# Konflikt bei Sequenz <dead_stroke> <p>. Unsere Sequenz »<dead_stroke> <p> <h> : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI« überschreibt die folgende Sequenz aus lang.module
|
||||
<dead_stroke> <p> : "ᵽ" U1D7D # LATIN SMALL LETTER P WITH STROKE
|
||||
|
@ -18,10 +18,10 @@ Du möchtest ein Problem melden? Oder hast Vorschläge und neue Ideen? Dann meld
|
||||
|
||||
## Technisches
|
||||
|
||||
Dies ist das offizielle Code-Repository. Hier können Bugs und Featurewünsche gemeldet werden. Dazu ist entweder eine [kurze Registrierung](https://git.neo-layout.org/user/sign_up) notwendig, oder eine Anmeldung [über GitHub](https://git.neo-layout.org/user/oauth2/github) mit Registrierung im gleichen Schritt. Wenn du bereits registriert bist, kannst du dein Konto beim Login auch nachträglich mit GitHub verknüpfen.
|
||||
Dies ist das offizielle Code-Repository. Hier können Bugs und Featurewünsche gemeldet werden. Dazu ist entweder eine kurze Registierung notwendig, oder eine Anmeldung direkt [über GitHub](https://git.neo-layout.org/user/oauth2/github) mit Registrierung im gleichen Schritt.
|
||||
|
||||
### Benutzername bereits vergeben?
|
||||
Sollte dein Benutzername bereits vergeben sein, kann dies an der Migration der Accounts aus dem früheren Issuetracker (Trac) liegen. In diesem Fall bitte kurz beim Neo-Team [im Chat](https://neo-layout.org/Beitragen/Community/) melden, um deinen alten Account wiederzuerlangen.
|
||||
Sollte dein Benutzername bereits vergeben sein, kann dies an der Migration der Accounts aus dem früheren Issuetracker (Trac) liegen. In diesem Fall bitte kurz beim Neo-Team [im Chat](https://neo-layout.org/Kontakt/community/) melden, um deinen alten Account wiederzuerlangen.
|
||||
|
||||
Auf [GitHub](https://github.com/neo-layout/neo-layout/) befindet sich ein gespiegeltes Repository.
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
],
|
||||
|
||||
"sym":[
|
||||
"[SPACE]=÷⋅−",
|
||||
"[SPACE]=÷·−",
|
||||
"[AltGr]↕↑⃗±",
|
||||
" ←:→ ",
|
||||
"[Shift]↔↓⇌[Del]",
|
||||
|
@ -20,8 +20,10 @@ Um alle Bilder erzeugen können, benötigt man eine Vielzahl an Abhängigkeiten:
|
||||
- libreoffice
|
||||
- sed
|
||||
- ed
|
||||
- libxkbcommon (xkbcli)
|
||||
- python mit jinja2, numpy, pandas, matplotlib, seaborn und lxml
|
||||
- setxkbmap und xkbcomp
|
||||
- python mit numpy, pandas, matplotlib und seaborn
|
||||
- perl mit XML::Writer
|
||||
- php
|
||||
- Linux Libertine
|
||||
- Gentium Plus Compact
|
||||
- DejaVu Sans Mono
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
#
|
||||
# BENUTZUNG AUF EIGENE GEFAHR!
|
||||
#
|
||||
|
@ -1,7 +1,7 @@
|
||||
all: default
|
||||
|
||||
%-grau-1234.svg: ../../A-REFERENZ-A/%.txt
|
||||
./alle-grau-1234.py $< > $@
|
||||
./alle-grau-1234.pl $< > $@
|
||||
|
||||
EXTRASVG=\
|
||||
neo20-grau-1234.svg \
|
||||
|
256
grafik/aufkleber/alle-grau-1234.pl
Executable file
@ -0,0 +1,256 @@
|
||||
#!/usr/bin/env -S perl -wT
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use XML::Writer;
|
||||
|
||||
use open ':encoding(utf8)';
|
||||
use utf8;
|
||||
|
||||
sub start_svg;
|
||||
sub end_svg;
|
||||
sub create_defs;
|
||||
sub create_key;
|
||||
sub parse_ref;
|
||||
sub in2px;
|
||||
sub create_keys;
|
||||
sub round;
|
||||
|
||||
my $dpi = 90;
|
||||
# a4 paper
|
||||
my $height = in2px(8.268);
|
||||
my $width = in2px(11.69);
|
||||
|
||||
my $keywidth = in2px(0.75);
|
||||
my $keyheight = in2px(0.75);
|
||||
my $labelwidth = in2px(0.5);
|
||||
my $labelheight = in2px(0.55);
|
||||
|
||||
my $posx = 0;
|
||||
my $posy = 0;
|
||||
|
||||
my $row = 0;
|
||||
my %kp_mapping = ( # mapping for keypad, level 4
|
||||
'Hom' => '⇱',
|
||||
'KP↑' => '⇡',
|
||||
'PgU' => '⇞',
|
||||
'KP←' => '⇠',
|
||||
'Beg' => '•',
|
||||
'KP→' => '⇢',
|
||||
'End' => '⇲',
|
||||
'KP↓' => '⇣',
|
||||
'PgD' => '⇟',
|
||||
'Ins' => '⎀',
|
||||
'Del' => '⌦',
|
||||
'Ent' => '⏎',
|
||||
'vec' => ' ⃗'
|
||||
);
|
||||
|
||||
my $writer = new XML::Writer(ENCODING => 'utf-8',
|
||||
DATA_MODE => 1,
|
||||
DATA_INDENT => 2);
|
||||
|
||||
start_svg;
|
||||
create_defs;
|
||||
|
||||
create_keys(parse_ref);
|
||||
|
||||
end_svg;
|
||||
|
||||
exit;
|
||||
|
||||
# parse reference and return multi-array
|
||||
sub parse_ref {
|
||||
my @letters;
|
||||
open REF, $ARGV[0]
|
||||
or die 'Error opening reference: '.$!;
|
||||
while (<REF>) {
|
||||
my @layer;
|
||||
last if /^== Zeichenerläuterungen/;
|
||||
|
||||
# layout blocks
|
||||
if(/Miniatur ===$/) {
|
||||
while(<REF>) {
|
||||
last if(/^$/); # empty line => end of current block
|
||||
next if($_ !~ /^│/); # skip horizontal dividers
|
||||
|
||||
push @layer, split /│/;
|
||||
}
|
||||
push @letters, [ @layer ]; # push ref
|
||||
}
|
||||
}
|
||||
close REF;
|
||||
|
||||
return @letters;
|
||||
}
|
||||
|
||||
sub create_keys {
|
||||
my @letters = @_;
|
||||
|
||||
for (0..$#{$letters[0]}) { # letters
|
||||
create_key
|
||||
$letters[0][$_],
|
||||
$letters[0][$_],
|
||||
$letters[1][$_],
|
||||
$letters[2][$_],
|
||||
$letters[3][$_];
|
||||
}
|
||||
for (0..$#{$letters[7]}) { # numbers
|
||||
create_key
|
||||
$letters[7][$_],
|
||||
$letters[7][$_],
|
||||
$letters[8][$_],
|
||||
$letters[9][$_],
|
||||
$letters[10][$_];
|
||||
}
|
||||
}
|
||||
|
||||
sub in2px {
|
||||
return ($_[0]||0) * $dpi;
|
||||
}
|
||||
|
||||
sub start_svg {
|
||||
$writer->xmlDecl('UTF-8');
|
||||
$writer->doctype('svg', '-//W3C//DTD SVG 20001102//EN',
|
||||
'http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd');
|
||||
|
||||
$writer->startTag('svg', height => $height, width => $width,
|
||||
'xmlns' => 'http://www.w3.org/2000/svg',
|
||||
'xmlns:xlink' => 'http://www.w3.org/1999/xlink');
|
||||
}
|
||||
sub end_svg {
|
||||
$writer->endTag('svg');
|
||||
$writer->end();
|
||||
}
|
||||
|
||||
# create the key template
|
||||
sub create_defs {
|
||||
$writer->startTag('defs');
|
||||
|
||||
# style information
|
||||
$writer->dataElement('style', '
|
||||
text.common {
|
||||
font-family:Linux Biolinum O, Linux Biolinum;
|
||||
font-style:normal;
|
||||
font-variant:normal;
|
||||
font-stretch:normal;
|
||||
text-align:center;
|
||||
text-anchor:middle;
|
||||
stroke:none;
|
||||
}
|
||||
text.main {
|
||||
/*font-weight:bold;*/
|
||||
font-size:19px;
|
||||
fill:#eeeeee;
|
||||
stroke-width:4;
|
||||
}
|
||||
text.special {
|
||||
font-size:16px;
|
||||
stroke-width:3;
|
||||
}
|
||||
text.outline {
|
||||
stroke:#111111;
|
||||
stroke-linejoin:round;
|
||||
}
|
||||
rect#boundary {
|
||||
fill:none;
|
||||
stroke:#eeeeee;
|
||||
stroke-width:'.in2px(0.005).';
|
||||
}
|
||||
rect#border {
|
||||
fill:#333333;
|
||||
stroke:#eeeeee;
|
||||
stroke-width:'.in2px(0.025).';
|
||||
}
|
||||
text.level1 {
|
||||
}
|
||||
text.level2 {
|
||||
}
|
||||
text.level3 {
|
||||
fill:#99dd66;
|
||||
}
|
||||
text.level4 {
|
||||
fill:#6699dd;
|
||||
font-size:13px;
|
||||
}', type => 'text/css');
|
||||
|
||||
# boundary of keys
|
||||
$writer->emptyTag('rect',
|
||||
id => 'boundary',
|
||||
width => $keywidth, height => $keyheight,
|
||||
rx => 5);
|
||||
# border for keys, actual key stickers
|
||||
$writer->emptyTag('rect',
|
||||
id => 'border',
|
||||
width => $labelwidth, height => $labelheight,
|
||||
rx => 10);
|
||||
|
||||
$writer->endTag('defs');
|
||||
}
|
||||
|
||||
# create a specific key (cloned from template)
|
||||
# first parameter (0) is first level, and is only used for line breaks in the graphic
|
||||
# param 1..4 are actual layers
|
||||
sub create_key {
|
||||
my @keys = @_;
|
||||
|
||||
$keys[0] = '' unless defined($keys[0]);
|
||||
$keys[1] = '' unless defined($keys[1]);
|
||||
s/\s//g for @keys; # remove any space
|
||||
|
||||
# map words to symbols for numblock
|
||||
foreach (keys %kp_mapping) {
|
||||
$keys[3] =~ s/\Q$_/\Q$kp_mapping{$_}/;
|
||||
$keys[4] =~ s/\Q$_/\Q$kp_mapping{$_}/;
|
||||
}
|
||||
|
||||
return if length($keys[0]) != 1;
|
||||
|
||||
$writer->startTag('g',
|
||||
transform => "translate($posx,$posy)",
|
||||
id => 'key_'.(join '', @keys));
|
||||
$writer->emptyTag('use', 'xlink:href' => '#boundary');
|
||||
$writer->startTag('g',
|
||||
transform => 'translate('.(($keywidth-$labelwidth)/2.5).', 2)');
|
||||
$writer->emptyTag('use', 'xlink:href' => '#border');
|
||||
|
||||
# add text+outlines to sticker
|
||||
for(' outline', '') {
|
||||
$writer->dataElement('text', $keys[1],
|
||||
transform => 'translate(15,41)',
|
||||
class => "level1 common main$_")
|
||||
# do not show e1, if it's the same letter as e2
|
||||
# only use for latin letters
|
||||
unless(#$keys[1] =~ /[a-züöäß]/ &&
|
||||
$keys[1] =~ /\Q$keys[2]/i);
|
||||
$writer->dataElement('text', $keys[2]||'',
|
||||
transform => 'translate(15,19)',
|
||||
class => "level2 common main$_");
|
||||
$writer->dataElement('text', $keys[3]||'',
|
||||
transform => 'translate(32,18)',
|
||||
class => "level3 common special$_");
|
||||
$writer->dataElement('text', $keys[4]||'',
|
||||
transform => 'translate(32,42)',
|
||||
class => "level4 common special$_");
|
||||
# do not show e4 on keypad
|
||||
#unless($row > 4 && $keys[0] =~ /\d/i);
|
||||
}
|
||||
$writer->endTag('g');
|
||||
$writer->endTag('g');
|
||||
|
||||
$posx += $keywidth;
|
||||
if($row < 3) {
|
||||
if($keys[0] =~ /[`´y]/) { # split keyboard rows, dirty way
|
||||
$posx = ++$row*$keywidth/2; # not really accurate, but works
|
||||
$posy += $keyheight;
|
||||
}
|
||||
} elsif($keys[0] =~ /[-93+j]/) { # keypad
|
||||
$posx = ++$row*0;
|
||||
$posy += $keyheight;
|
||||
}
|
||||
}
|
||||
|
||||
sub round {
|
||||
return int($_[0]+.5*($_[0]<=>0));
|
||||
}
|
@ -1,221 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
from lxml import etree as ET
|
||||
|
||||
|
||||
def in2px(inch):
|
||||
return round(inch * DPI, 2)
|
||||
|
||||
|
||||
DPI = 90
|
||||
|
||||
# a4 paper
|
||||
HEIGHT = in2px(8.268)
|
||||
WIDTH = in2px(11.69)
|
||||
|
||||
KEYWIDTH = in2px(0.75)
|
||||
KEYHEIGHT = in2px(0.75)
|
||||
LABELWIDTH = in2px(0.5)
|
||||
LABELHEIGHT = in2px(0.55)
|
||||
|
||||
KP_MAPPING = { # mapping for keypad, level 4
|
||||
'Hom': '⇱',
|
||||
'KP↑': '⇡',
|
||||
'PgU': '⇞',
|
||||
'KP←': '⇠',
|
||||
'Beg': '•',
|
||||
'KP→': '⇢',
|
||||
'End': '⇲',
|
||||
'KP↓': '⇣',
|
||||
'PgD': '⇟',
|
||||
'Ins': '⎀',
|
||||
'Del': '⌦',
|
||||
'Ent': '⏎',
|
||||
'vec': ' ⃗'
|
||||
}
|
||||
|
||||
strokewidth = in2px(0.005)
|
||||
STYLESHEET = '''
|
||||
text.common {
|
||||
font-family:Linux Biolinum O, Linux Biolinum;
|
||||
font-style:normal;
|
||||
font-variant:normal;
|
||||
font-stretch:normal;
|
||||
text-align:center;
|
||||
text-anchor:middle;
|
||||
stroke:none;
|
||||
}
|
||||
text.main {
|
||||
/*font-weight:bold;*/
|
||||
font-size:19px;
|
||||
fill:#eeeeee;
|
||||
stroke-width:4;
|
||||
}
|
||||
text.special {
|
||||
font-size:16px;
|
||||
stroke-width:3;
|
||||
}
|
||||
text.outline {
|
||||
stroke:#111111;
|
||||
stroke-linejoin:round;
|
||||
}
|
||||
rect#boundary {
|
||||
fill:none;
|
||||
stroke:#eeeeee;
|
||||
stroke-width:''' + str(in2px(0.005)) + '''px;
|
||||
}
|
||||
rect#border {
|
||||
fill:#333333;
|
||||
stroke:#eeeeee;
|
||||
stroke-width:''' + str(in2px(0.025)) + '''px;
|
||||
}
|
||||
text.level1 {
|
||||
}
|
||||
text.level2 {
|
||||
}
|
||||
text.level3 {
|
||||
fill:#99dd66;
|
||||
}
|
||||
text.level4 {
|
||||
fill:#6699dd;
|
||||
font-size:13px;
|
||||
}'''
|
||||
|
||||
NSMAP = {None: 'http://www.w3.org/2000/svg',
|
||||
'xlink': 'http://www.w3.org/1999/xlink'}
|
||||
XLINK = '{%s}' % NSMAP['xlink']
|
||||
DOCTYPE = ('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" '
|
||||
'"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">')
|
||||
|
||||
|
||||
def parse_ref(filename):
|
||||
'''parse reference and return multi-array'''
|
||||
with open(filename) as fh:
|
||||
lines = fh.read().splitlines()
|
||||
keymap = []
|
||||
state = 0
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
if state == 0:
|
||||
if line.endswith("Miniatur ==="):
|
||||
state = 1
|
||||
layer = []
|
||||
keymap.append(layer)
|
||||
continue
|
||||
elif not line: # empty line: end of current block/layer
|
||||
state = 0
|
||||
layer = None
|
||||
continue
|
||||
elif not line.startswith("│"): # skip horizontal dividers
|
||||
continue
|
||||
else:
|
||||
line = [k.strip() for k in line.split("│")]
|
||||
layer.append(line[1:-1])
|
||||
return keymap
|
||||
|
||||
|
||||
def create_defs(parent):
|
||||
'''create the key template'''
|
||||
node = ET.SubElement(parent, 'defs')
|
||||
# style sheet
|
||||
ET.SubElement(node, 'style', type='text/css').text = STYLESHEET
|
||||
# boundary of keys
|
||||
ET.SubElement(node, 'rect', id='boundary',
|
||||
width=str(KEYWIDTH), height=str(KEYHEIGHT), rx="5")
|
||||
# border for keys, actual key stickers
|
||||
ET.SubElement(node, 'rect', id='border',
|
||||
width=str(LABELWIDTH), height=str(LABELHEIGHT), rx="10")
|
||||
|
||||
|
||||
def create_keys(parent, keymap):
|
||||
posy = 0
|
||||
|
||||
# main keyboard
|
||||
# TODO remove leading blank key
|
||||
for row in range(len(keymap[0])):
|
||||
posx = row / 2 * KEYWIDTH # not really accurate, but works
|
||||
for key in range(len(keymap[0][row])):
|
||||
key = create_key(parent, posx, posy,
|
||||
keymap[0][row][key],
|
||||
keymap[1][row][key],
|
||||
keymap[2][row][key],
|
||||
keymap[3][row][key])
|
||||
if key is not None: # advance only if sticker was output
|
||||
posx += KEYWIDTH
|
||||
posy += KEYHEIGHT
|
||||
|
||||
# numpad
|
||||
for row in range(len(keymap[7])):
|
||||
posx = 0
|
||||
for key in range(len(keymap[7][row])):
|
||||
key = create_key(parent, posx, posy,
|
||||
keymap[7][row][key],
|
||||
keymap[8][row][key],
|
||||
keymap[9][row][key],
|
||||
keymap[10][row][key])
|
||||
if key is not None: # advance only if sticker was output
|
||||
posx += KEYWIDTH
|
||||
posy += KEYHEIGHT
|
||||
|
||||
|
||||
def create_key(parent, posx, posy, *keys):
|
||||
'''create a specific key (cloned from template)'''
|
||||
|
||||
if len(keys[0]) != 1: # skip keys like Tab at the left side
|
||||
return
|
||||
|
||||
def text(level, trans, type):
|
||||
ET.SubElement(
|
||||
g1, 'text',
|
||||
{'transform': f'translate({trans})',
|
||||
'class': f"level{level} common {type}{outline}"}
|
||||
).text = keys[level-1]
|
||||
|
||||
keys = list(keys)
|
||||
|
||||
# map words to symbols for numblock
|
||||
keys[2] = KP_MAPPING.get(keys[2], keys[2])
|
||||
keys[3] = KP_MAPPING.get(keys[3], keys[3])
|
||||
|
||||
g0 = ET.SubElement(parent, 'g',
|
||||
transform=f"translate({posx},{posy})",
|
||||
id='key_' + ''.join(keys))
|
||||
ET.SubElement(g0, 'use', {XLINK + 'href': '#boundary'})
|
||||
g1 = ET.SubElement(g0, 'g',
|
||||
transform=f'translate({(KEYWIDTH-LABELWIDTH)/2.5}, 2)')
|
||||
ET.SubElement(g1, 'use', {XLINK + 'href': '#border'})
|
||||
|
||||
# do not show e1, if it's the same letter as e2
|
||||
upper_eq_lower = (keys[1].lower() == keys[0])
|
||||
|
||||
# add text+outlines to sticker
|
||||
for outline in (' outline', ''):
|
||||
if not upper_eq_lower:
|
||||
text(1, '15,41', 'main')
|
||||
text(2, '15,19', 'main')
|
||||
text(3, '32,18', 'special')
|
||||
text(4, '32,42', 'special')
|
||||
return g0
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('filename')
|
||||
args = parser.parse_args()
|
||||
|
||||
keymap = parse_ref(args.filename)
|
||||
|
||||
root = ET.Element('svg',
|
||||
height=str(HEIGHT), width=str(WIDTH),
|
||||
nsmap=NSMAP)
|
||||
create_defs(root)
|
||||
create_keys(root, keymap)
|
||||
|
||||
doc = ET.tostring(root, encoding="UTF-8", xml_declaration=True,
|
||||
doctype=DOCTYPE, pretty_print=True)
|
||||
sys.stdout.buffer.write(doc)
|
||||
|
||||
|
||||
main()
|
@ -1,45 +1,26 @@
|
||||
#you can use this line if you have vou and mine installed (not included with xkeyboard-config)
|
||||
#VARIANTS=neo bone neo_qwertz neo_qwerty koy adnw vou mine
|
||||
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}, -${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
|
||||
|
||||
VARIANTS := neo bone neo_qwertz neo_qwerty koy adnw
|
||||
|
||||
# You can use this line if you have vou and mine installed (not
|
||||
# included with xkeyboard-config)
|
||||
#VARIANTS += vou mine
|
||||
|
||||
LAYERS = 1 2 3 4 5 6 Pseudoebene 1caps 2caps
|
||||
VERSIONS = numpad tkl
|
||||
|
||||
BASENAMES ::= $(foreach variant, ${VARIANTS}, \
|
||||
$(foreach layer, ${LAYERS}, \
|
||||
$(foreach version, ${VERSIONS}, \
|
||||
${variant}${suffix}-${layer}-${version})))
|
||||
BASENAMES += $(foreach variant, ${VARIANTS}, \
|
||||
$(foreach version, ${VERSIONS}, \
|
||||
${variant}${suffix}-leer-${version}))
|
||||
|
||||
SVG_TARGETS=$(addsuffix .svg, ${BASENAMES})
|
||||
SVG_PATH_TARGETS=$(addsuffix .path.svg, ${BASENAMES})
|
||||
PDF_TARGETS=$(addsuffix .pdf, ${BASENAMES})
|
||||
PNG_TARGETS=$(addsuffix .png, ${BASENAMES})
|
||||
|
||||
SOURCES = generate-graphics.py replacements.py base.svg.template
|
||||
|
||||
default: all cleanpycache
|
||||
all: svg-path svg pdf png
|
||||
default: all cleansvg cleanpycache
|
||||
|
||||
svg-path: ${SVG_PATH_TARGETS}
|
||||
svg: ${SVG_TARGETS}
|
||||
pdf: ${PDF_TARGETS}
|
||||
png: ${PNG_TARGETS}
|
||||
|
||||
%-tkl.svg: variant=$(shell echo $@ | cut -d - -f 1)
|
||||
%-tkl.svg: ${SOURCES}
|
||||
@echo "Erzeuge $(variant) Hauptfeld."
|
||||
./generate-graphics.py $(variant)
|
||||
|
||||
%-numpad.svg: variant=$(shell echo $@ | cut -d - -f 1)
|
||||
%-numpad.svg: ${SOURCES}
|
||||
@echo "Erzeuge $(variant) Numpad."
|
||||
./generate-graphics.py $(variant) numpad
|
||||
$(foreach suffix, ${SUFFIXES}, %${suffix}) &: ${SOURCES}
|
||||
@echo "Erzeuge $@."
|
||||
./generate-graphics.py `echo $@ | cut -d - -f 1` numpad
|
||||
./generate-graphics.py `echo $@ | cut -d - -f 1`
|
||||
|
||||
%.path.svg: %.svg
|
||||
inkscape --export-filename=$@ -T $<
|
||||
@ -51,6 +32,8 @@ png: ${PNG_TARGETS}
|
||||
inkscape --export-filename=$@ --export-height=183 $<
|
||||
optipng $@
|
||||
|
||||
all: svg-path svg pdf png
|
||||
|
||||
cleansvgpath:
|
||||
rm -f ${SVG_PATH_TARGETS}
|
||||
|
||||
|
@ -1,142 +1,64 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
import more_itertools as mit
|
||||
from jinja2 import Template
|
||||
import os
|
||||
import sys
|
||||
|
||||
import replacements
|
||||
|
||||
TEMPLATENAME = "base.svg.template"
|
||||
if len(sys.argv) == 1:
|
||||
print('Usage: ./<this script> variantname [numpad]')
|
||||
exit(1)
|
||||
|
||||
layout = sys.argv[1]
|
||||
templatename = "base.svg.template"
|
||||
numpad = True if len(sys.argv) == 3 and sys.argv[2] == "numpad" else False
|
||||
swap_m3r_ä = True if layout == "vou" or layout == "mine" else False
|
||||
vou = True if layout == "vou" else False
|
||||
mine = True if layout == "mine" else False
|
||||
|
||||
os.system("setxkbmap de " + layout + " -print | xkbcomp -xkb - /tmp/keymaptmp 2>/dev/null")
|
||||
# TODO: actually write/generate a proper parser for xkbmaps
|
||||
os.system(r'''sed -n '/xkb_symbols/,/xkb_geometry/p' /tmp/keymaptmp | tail -n +2 | grep -e 'key' -e symbols -e '}' | sed 's/symbols\[Group1]=//' | paste -sd "" - | sed 's/\;/&\n/g' | grep -v 'modifier_map' | sed -r 's/\s//g' | sed -r 's/key<(.*)>\{\[/\1=/g' | sed -r 's/\]?,?\}\;//' | grep -v '^$' > /tmp/keymap''')
|
||||
|
||||
|
||||
# modifiers for layers in order as in keymap
|
||||
MODIFIERS = [
|
||||
modifiers=[
|
||||
[],
|
||||
["SHIFT"],
|
||||
["MOD3"],
|
||||
["MOD3", "SHIFT"],
|
||||
["MOD3","SHIFT"],
|
||||
["MOD4"],
|
||||
["MOD4", "SHIFT"],
|
||||
["MOD3", "MOD4"],
|
||||
["MOD4","SHIFT"],
|
||||
["MOD3","MOD4"],
|
||||
[]
|
||||
]
|
||||
|
||||
LAYERNAMES = ["1", "2", "3", "5", "4", "Pseudoebene", "6", ""]
|
||||
layernames = ["1","2","3","5","4","Pseudoebene","6",""]
|
||||
|
||||
# 1E9E = Latin Capital Letter Sharp S
|
||||
upper_chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ\u1e9e'
|
||||
lower_chars = 'abcdefghijklmnopqrstuvwxyzäöüß'
|
||||
CAPS_MAP = str.maketrans(dict(zip(upper_chars + lower_chars,
|
||||
lower_chars + upper_chars)))
|
||||
assert len(lower_chars) == len(upper_chars) == 30
|
||||
assert len(CAPS_MAP) == len(lower_chars) + len(upper_chars)
|
||||
with open('/tmp/keymap', 'r') as file:
|
||||
data = file.readlines()
|
||||
|
||||
# read the keymap into a dict
|
||||
keymap = {x.split('=')[0]: x.split('=')[1].strip('\n').split(',') for x in data}
|
||||
# some keys arent layered, hence the list is too short. pad them with the first entry.
|
||||
keymap = {a: list(mit.padded(b, b[0], 9)) for a,b in keymap.items()}
|
||||
# replace keynames with the symbol they produce
|
||||
keymap = {a: list(map(replacements.f, b)) for a,b in keymap.items()}
|
||||
|
||||
def keymap_to_keys(text):
|
||||
# simple and dump parser for xkb keymap files
|
||||
#
|
||||
# It simply searches all "key { … };" parts and splits them.
|
||||
# A more advanced version would parts "xkb_symbols { … }" first
|
||||
# and only search in this part.
|
||||
|
||||
assert text.startswith("xkb_keymap")
|
||||
|
||||
KEY_PATTERN = r'\s key \s .+? \s { [^}]+? };'
|
||||
SYMBOLS_PATTERN = r'\[ (.+?) \]'
|
||||
|
||||
text = text.split('xkb_symbols', 1)[1]
|
||||
# FIXME: assumes the next section (if there is one) is
|
||||
# xkb_geometry
|
||||
text = text.split('xkb_geometry', 1)[0]
|
||||
|
||||
for k in re.findall(KEY_PATTERN, text, re.M+re.X):
|
||||
_, name, text = k.split(None, 2)
|
||||
name = name.strip('<').rstrip('>')
|
||||
text = text.replace('symbols[Group1]', '')
|
||||
symbols = re.findall(SYMBOLS_PATTERN, text, re.M+re.X)
|
||||
if not symbols:
|
||||
raise SystemExit(f"{name} did not match: {text!r}")
|
||||
if len(symbols) != 1:
|
||||
print("currious key:", name, symbols)
|
||||
|
||||
symbols = [s.strip() for s in symbols[0].split(',')]
|
||||
# replace keynames with the symbol they produce
|
||||
symbols = [replacements.f(s) for s in symbols]
|
||||
# Some keys aren't layered, hence the list is too short.
|
||||
# pad them with the first entry.
|
||||
symbols = (symbols + symbols[:1]*9)[:9]
|
||||
yield name, symbols
|
||||
|
||||
|
||||
# --- argument handling ---
|
||||
|
||||
if len(sys.argv) not in (2, 3):
|
||||
raise SystemExit('Usage: ./<this script> variantname [numpad]')
|
||||
|
||||
layout = sys.argv[1]
|
||||
numpad = (len(sys.argv) == 3 and sys.argv[2] == "numpad")
|
||||
|
||||
swap_m3r_ä = (layout == "vou" or layout == "mine")
|
||||
vou = (layout == "vou")
|
||||
mine = (layout == "mine")
|
||||
version = "numpad" if numpad else "tkl"
|
||||
|
||||
# - read data and template
|
||||
|
||||
keymap = subprocess.check_output(
|
||||
["xkbcli", "compile-keymap", "--layout", "de", "--variant", layout],
|
||||
text=True)
|
||||
keymap = dict(keymap_to_keys(keymap))
|
||||
|
||||
with open(TEMPLATENAME) as templatefile:
|
||||
template = Template(templatefile.read())
|
||||
|
||||
|
||||
# --- generate files ---
|
||||
|
||||
def write_image(layername, layerdict):
|
||||
layerdict["numpad"] = numpad
|
||||
layerdict["swap_m3r_ä"] = swap_m3r_ä
|
||||
layerdict["vou"] = vou
|
||||
layerdict["mine"] = mine
|
||||
|
||||
with open(f'{layout}-{layername}-{version}.svg', 'w') as out:
|
||||
out.write(template.render(layerdict))
|
||||
|
||||
|
||||
def make_caps_lock(text):
|
||||
if len(text) == 1:
|
||||
return text.translate(CAPS_MAP)
|
||||
else:
|
||||
return text
|
||||
|
||||
|
||||
# - main layers
|
||||
|
||||
for layer in range(7): # 7 because the last layer is empty
|
||||
# create a dict with the replacements from replacements.py
|
||||
layerdict = {a: b[layer] for a, b in keymap.items()}
|
||||
# color modifiers accordingly
|
||||
for x in MODIFIERS[layer]:
|
||||
layerdict[x] = " pressed"
|
||||
write_image(LAYERNAMES[layer], layerdict)
|
||||
|
||||
filename = f'{layout}-{LAYERNAMES[layer]}-{version}.svg'
|
||||
with open(filename, 'w') as out:
|
||||
out.write(template.render(layerdict))
|
||||
|
||||
# - caps-lock images
|
||||
|
||||
for layer in 0, 1:
|
||||
# create a dict with the replacements from replacements.py
|
||||
layerdict = {a: make_caps_lock(b[layer]) for a, b in keymap.items()}
|
||||
# color modifiers accordingly
|
||||
for x in MODIFIERS[layer]:
|
||||
layerdict[x] = " pressed"
|
||||
write_image(LAYERNAMES[layer] + 'caps', layerdict)
|
||||
|
||||
|
||||
# - "leer" image
|
||||
|
||||
write_image('leer', {})
|
||||
for layer in range(0,7): # 7 because the last layer is empty
|
||||
# create a dict with the replacements from repalcements.py
|
||||
layerdict = {a: b[layer] for a,b in keymap.items()}
|
||||
# color modifiers accordingly
|
||||
for x in modifiers[layer]:
|
||||
layerdict[x] = " pressed"
|
||||
layerdict["numpad"] = numpad
|
||||
layerdict["swap_m3r_ä"] = swap_m3r_ä
|
||||
layerdict["vou"] = vou
|
||||
layerdict["mine"] = mine
|
||||
versionstring = "-numpad" if numpad else "-tkl"
|
||||
out = open(layout + "-" + layernames[layer] + versionstring + ".svg", "w")
|
||||
with open(templatename) as templatefile:
|
||||
template = Template(templatefile.read())
|
||||
out.write(template.render(layerdict))
|
||||
out.close()
|
||||
|
@ -1325,7 +1325,7 @@ replacements = {
|
||||
"dintegral":"U222C",
|
||||
"tintegral":"U222D",
|
||||
"because":"U2235",
|
||||
"approxeq":"U2248",
|
||||
"approxeq":"U2245",
|
||||
"notapproxeq":"U2247",
|
||||
"notidentical":"U2262",
|
||||
"stricteq":"U2263",
|
||||
|
@ -7,13 +7,13 @@ neo-bunt-123456.png: neo-bunt-123456.ods
|
||||
libreoffice --convert-to png $<
|
||||
|
||||
neo20-grau-123456.svg:
|
||||
./all-grau-123456.py neo20
|
||||
./all-grau-123456.php neo20
|
||||
|
||||
bone-grau-123456.svg:
|
||||
./all-grau-123456.py bone
|
||||
./all-grau-123456.php bone
|
||||
|
||||
neoqwertz-grau-123456.svg:
|
||||
./all-grau-123456.py neoqwertz
|
||||
./all-grau-123456.php neoqwertz
|
||||
|
||||
EXTRASVG=\
|
||||
neo20-grau-123456.svg \
|
||||
|
3476
grafik/bilder-uebersicht/all-grau-123456.php
Executable file
@ -1,255 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
from lxml import etree as ET
|
||||
|
||||
REFERENZ_DIR = '../../A-REFERENZ-A/'
|
||||
|
||||
KEYWIDTH = KEYHEIGHT = 72
|
||||
LABELWIDTH = KEYWIDTH
|
||||
LABELHEIGHT = KEYWIDTH
|
||||
|
||||
KP_MAPPING = { # mapping for keypad, level 4
|
||||
'Hom': '⇱',
|
||||
'KP↑': '⇡',
|
||||
'PgU': '⇞',
|
||||
'KP←': '⇠',
|
||||
'Beg': '•',
|
||||
'KP→': '⇢',
|
||||
'End': '⇲',
|
||||
'KP↓': '⇣',
|
||||
'PgD': '⇟',
|
||||
'Ins': '⎀',
|
||||
'Del': '⌦',
|
||||
'Ent': '⏎',
|
||||
'vec': ' ⃗'
|
||||
}
|
||||
|
||||
STYLESHEET = '''
|
||||
rect.grey { fill:#cccccc !important }
|
||||
rect.key { fill:white; stroke:black; stroke-width: 1 }
|
||||
|
||||
text {
|
||||
/* font-family:Linux Biolinum O, Linux Biolinum;*/
|
||||
font-family:normal;
|
||||
font-style:normal;
|
||||
font-variant:normal;
|
||||
font-stretch:normal;
|
||||
stroke:none;
|
||||
text-align:center;
|
||||
text-anchor:middle;
|
||||
dominant-baseline: middle;
|
||||
fill: black;
|
||||
}
|
||||
text.main { font-weight:bold }
|
||||
text.special { }
|
||||
text.level1 { font-size:22px }
|
||||
text.level2 { font-size:22px }
|
||||
text.level3 { font-size:14px }
|
||||
text.level4 { font-size:14px }
|
||||
text.level5 { font-size:14px }
|
||||
text.level6 { font-size:14px }
|
||||
text.deadkey { fill: red }
|
||||
text.modifier { font-size:20px }
|
||||
'''
|
||||
|
||||
NSMAP = {None: 'http://www.w3.org/2000/svg',
|
||||
'xlink': 'http://www.w3.org/1999/xlink'}
|
||||
XLINK = '{%s}' % NSMAP['xlink']
|
||||
DOCTYPE = ('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" '
|
||||
'"http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">')
|
||||
|
||||
|
||||
LAYOUT = (
|
||||
[1] * 13 + [2.0],
|
||||
[1.5] + [1] * 12 + [0],
|
||||
[1.75] + [1] * 11 + [1.0, 0],
|
||||
[1.25, 1.0] + [1] * 10 + [2.75, 0],
|
||||
)
|
||||
|
||||
SPECIAL_KEYS = (
|
||||
(0, 13, 2.0, "Backspace"),
|
||||
(1, 0, 1.5, "Tab"),
|
||||
(2, 0, 1.75, "Mod 3"),
|
||||
(2, 12.75, 1, "Mod 3"),
|
||||
(3, 0, 1.25, "Umsch"),
|
||||
(3, 1.25, 1, "Mod 4"),
|
||||
(3, 12.25, 2.75, "Umschalt"),
|
||||
(4, 0, 1.5, "Strg"),
|
||||
(4, 2.5, 1.5, "Alt"),
|
||||
(4, 9.5, 1.5, "Mod4"),
|
||||
(4, 13.5, 1.5, "Strg"),
|
||||
)
|
||||
|
||||
|
||||
def parse_ref(layout):
|
||||
'''parse reference and return multi-array'''
|
||||
filename = os.path.join(REFERENZ_DIR, f'{layout}.txt')
|
||||
with open(filename) as fh:
|
||||
lines = fh.read().splitlines()
|
||||
keymap = []
|
||||
state = 0
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
if state == 0:
|
||||
if line.endswith("Miniatur ==="):
|
||||
state = 1
|
||||
layer = []
|
||||
keymap.append(layer)
|
||||
continue
|
||||
elif not line: # empty line: end of current block/layer
|
||||
state = 0
|
||||
layer = None
|
||||
continue
|
||||
elif not line.startswith("│"): # skip horizontal dividers
|
||||
continue
|
||||
else:
|
||||
line = [k.strip() for k in line.split("│")]
|
||||
layer.append(line[1:-1])
|
||||
return keymap
|
||||
|
||||
|
||||
def create_defs(parent):
|
||||
'''create the key template'''
|
||||
node = ET.SubElement(parent, 'defs')
|
||||
# style sheet
|
||||
ET.SubElement(node, 'style', type='text/css').text = STYLESHEET
|
||||
# boundary of keys
|
||||
# ET.SubElement(node, 'rect', id='boundary',
|
||||
# width=str(KEYWIDTH), height=str(KEYHEIGHT), rx="0")
|
||||
# # border for keys, actual key stickers
|
||||
# ET.SubElement(node, 'rect', id='border',
|
||||
# width=str(LABELWIDTH), height=str(LABELHEIGHT), rx="0")
|
||||
|
||||
|
||||
def draw_keys(parent):
|
||||
# draw return key first to be overdrawn by others
|
||||
w = sum(LAYOUT[0]) * KEYWIDTH
|
||||
posx = sum(LAYOUT[1]) * KEYWIDTH
|
||||
ET.SubElement(parent, 'rect', {'class': 'key grey'},
|
||||
x=str(posx), y=str(KEYHEIGHT + 1),
|
||||
width=str(w - posx), height=str(2 * KEYHEIGHT))
|
||||
|
||||
def rect(x, y, kwidth, classes):
|
||||
kwidth *= KEYWIDTH
|
||||
ET.SubElement(parent, 'rect', {'class': classes},
|
||||
x=str(x), y=str(y),
|
||||
width=str(kwidth), height=str(KEYHEIGHT))
|
||||
return kwidth
|
||||
|
||||
# other keys
|
||||
posy = 1
|
||||
for row in LAYOUT:
|
||||
posx = 0
|
||||
for key in row:
|
||||
if not key:
|
||||
continue
|
||||
elif isinstance(key, float):
|
||||
kwidth = key * KEYWIDTH
|
||||
else:
|
||||
kwidth = rect(posx, posy, key, 'key')
|
||||
posx += kwidth
|
||||
posy += KEYHEIGHT
|
||||
drawing_width = posx + 1
|
||||
|
||||
# special keys
|
||||
for row, col_offset, kwidth, label in SPECIAL_KEYS:
|
||||
rect(col_offset * KEYWIDTH, row * KEYHEIGHT + 1, kwidth, 'key grey')
|
||||
rect(4 * KEYWIDTH, posy, 5.5, 'key') # Leertaste
|
||||
|
||||
posy += KEYHEIGHT
|
||||
return drawing_width, posy
|
||||
|
||||
|
||||
def create_labels(parent, keymap):
|
||||
posy = 1
|
||||
# main keyboard
|
||||
for row in range(len(keymap[0])-1):
|
||||
posx = 0
|
||||
for key in range(len(keymap[0][row])):
|
||||
create_label(parent, posx, posy,
|
||||
keymap[0][row][key],
|
||||
keymap[1][row][key],
|
||||
keymap[2][row][key],
|
||||
keymap[3][row][key],
|
||||
keymap[4][row][key],
|
||||
keymap[5][row][key])
|
||||
posx += LAYOUT[row][key] * KEYWIDTH
|
||||
posy += KEYHEIGHT
|
||||
|
||||
def text(x, y, kwidth, label):
|
||||
x = x * KEYWIDTH + kwidth * KEYWIDTH / 2 + 1
|
||||
y = y * KEYHEIGHT + KEYHEIGHT / 2 + 1
|
||||
ET.SubElement(
|
||||
parent, 'text',
|
||||
{'x': str(x), 'y': str(y),
|
||||
'class': 'modifier'}
|
||||
).text = label
|
||||
|
||||
# special keys
|
||||
for row, col_offset, kwidth, label in SPECIAL_KEYS:
|
||||
text(col_offset, row, kwidth, label)
|
||||
text(13.5, 1.25, 1.75, "Return")
|
||||
|
||||
|
||||
def create_label(parent, posx, posy, *labels):
|
||||
'''create a specific key (cloned from template)'''
|
||||
|
||||
def text(level, trans, type):
|
||||
ET.SubElement(
|
||||
g, 'text',
|
||||
{'transform': f'translate({trans})',
|
||||
'class': f"level{level} {type} {deadkey}"}
|
||||
).text = labels[level-1]
|
||||
|
||||
labels = list(labels)
|
||||
if len(labels[0]) > 1:
|
||||
# special keys are labels special above
|
||||
return
|
||||
|
||||
# map words to symbols for numblock
|
||||
labels[2] = KP_MAPPING.get(labels[2], labels[2])
|
||||
labels[3] = KP_MAPPING.get(labels[3], labels[3])
|
||||
|
||||
g = ET.SubElement(parent, 'g',
|
||||
transform=f"translate({posx},{posy})",
|
||||
id='key_' + ''.join(labels))
|
||||
upper_eq_lower = (labels[1].lower() == labels[0])
|
||||
deadkey = 'deadkey' if labels[0] in "ˆ`´" else 'live'
|
||||
|
||||
if upper_eq_lower:
|
||||
# do not show e1, if it's the same letter as e2
|
||||
text(2, '15,35', 'main')
|
||||
else:
|
||||
text(1, '15,55', 'main')
|
||||
text(2, '15,20', '')
|
||||
text(3, '42,50', 'special')
|
||||
text(4, '42,20', 'special')
|
||||
text(5, '59,50', 'special')
|
||||
text(6, '59,20', 'special')
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('layout')
|
||||
args = parser.parse_args()
|
||||
|
||||
keymap = parse_ref(args.layout)
|
||||
|
||||
root = ET.Element('svg',
|
||||
nsmap=NSMAP)
|
||||
create_defs(root)
|
||||
width, height = draw_keys(root)
|
||||
create_labels(root, keymap)
|
||||
|
||||
root.set('width', str(width))
|
||||
root.set('height', str(height))
|
||||
|
||||
doc = ET.tostring(root, encoding="utf-8", xml_declaration=True,
|
||||
doctype=DOCTYPE, pretty_print=True)
|
||||
with open(f'{args.layout}-grau-123456.svg', 'wb') as fh:
|
||||
fh.write(doc)
|
||||
|
||||
|
||||
main()
|
@ -1,21 +0,0 @@
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [
|
||||
inkscape
|
||||
optipng
|
||||
imagemagick
|
||||
libicns
|
||||
libreoffice
|
||||
ed
|
||||
libxkbcommon
|
||||
python3
|
||||
python3Packages.pandas
|
||||
python3Packages.matplotlib
|
||||
python3Packages.seaborn
|
||||
python3Packages.more-itertools
|
||||
python3Packages.jinja2
|
||||
python3Packages.lxml
|
||||
];
|
||||
|
||||
# You also need to install the fonts (libertine gentium dejavu ... )
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
# Neo für iOS mit Keybuild
|
||||
|
||||
Diese Datei enthält Layouts für die Verwendung mit [Keybuild](https://apps.apple.com/de/app/keybuild/id1547174534).
|
||||
Mehr Informationen zur Verwendung finden sich auf der Neo-Webseite.
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
# Verzeichnis muss eventuell an den Ort der Compose angepasst werden:
|
||||
COMPOSE=/usr/share/X11/locale/en_US.UTF-8/Compose
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
# Copyright 2008 Pascal Hauck <pascal.hauck@web.de>
|
||||
|
||||
# Neo-Tastaturbelegung
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
# Copyright 2008 Pascal Hauck <pascal.hauck@web.de>
|
||||
|
||||
# Neo-Tastaturbelegung
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
#
|
||||
# Dieses Skript unterstützt die Benutzung der Neo-Tastatur
|
||||
# Als Argument kann ein einzelnes Zeichen oder eine Beschreibung eines Zeichens übergeben werden
|
||||
|
BIN
mac_osx/bone.icns
Normal file
@ -1,26 +0,0 @@
|
||||
# macOS icons
|
||||
|
||||
This folder contains vector graphics to create the macOS icons from.
|
||||
|
||||
There are two variants for 16x16 sized and 32x32 sized icons.
|
||||
In both variants, the stroke width of the logo is increased to keep it at least
|
||||
someone legible on the small icon sizes. The 16x16 stroke width is even heavier
|
||||
than the 32x32 stroke width.
|
||||
|
||||
Use the SVG files to generate the following PNG file in folder ending with
|
||||
`.iconset` (use grayscale with alpha channel):
|
||||
|
||||
* `icon_16x16.png`
|
||||
* `icon_16x16@2x.png'
|
||||
* `icon_32x32.png`
|
||||
* `icon_32x32@2x.png'
|
||||
|
||||
Then the folder can be converted to an ICNS file with `iconutil`:
|
||||
|
||||
```shell
|
||||
iconutil -c icns -o output.icns input.iconset
|
||||
```
|
||||
|
||||
The ICNS file can then be assigned to the respective layout in the bundle file
|
||||
with Ukelele.
|
||||
|
@ -1,82 +0,0 @@
|
||||
<?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"
|
||||
width="134.47168"
|
||||
height="134.47168"
|
||||
id="svg44668"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
|
||||
version="1.0"
|
||||
sodipodi:docname="bone-icon-16.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_16x16.png"
|
||||
inkscape:export-xdpi="11.42"
|
||||
inkscape:export-ydpi="11.42">
|
||||
<defs
|
||||
id="defs44670">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 615.78477 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 615.78477 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 440.39107 : 1"
|
||||
id="perspective44676" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.2796268"
|
||||
inkscape:cx="68.608943"
|
||||
inkscape:cy="137.39433"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1323"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="25"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata44673">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(46.55321,-504.50721)">
|
||||
<path
|
||||
id="rect896"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157;stroke-dasharray:2.00315, 2.00315"
|
||||
d="M 19.513672 0 C 8.7026853 0 0 8.7026853 0 19.513672 L 0 114.95703 C 0 125.76802 8.7026853 134.47266 19.513672 134.47266 L 114.95703 134.47266 C 125.76802 134.47266 134.4707 125.76802 134.4707 114.95703 L 134.4707 19.513672 C 134.4707 8.7026853 125.76802 0 114.95703 0 L 19.513672 0 z M 6.9121094 41.662109 C 11.065648 41.677681 15.219505 41.691535 19.373047 41.707031 C 19.385897 44.684868 19.386153 47.662773 19.392578 50.640625 C 18.972314 53.774435 20.736383 49.728251 22.347656 49.789062 C 28.456843 48.598205 35.259894 50.145704 39.767578 54.634766 C 40.840788 55.572039 41.743574 56.624707 42.505859 57.759766 C 45.922319 52.668332 51.522736 49.019644 57.751953 48.675781 C 62.446232 48.340352 67.449851 49.882638 70.986328 53 C 78.025637 47.486238 89.338754 48.366033 95.425781 55.007812 C 98.977055 51.747698 103.25198 49.267249 108.16992 49.095703 C 113.61214 48.605294 119.52969 50.200998 123.22656 54.412109 C 126.09729 57.016075 123.37204 60.680622 123.18359 63.726562 C 120.48518 65.330692 117.43115 64.151699 114.5332 64.339844 C 112.38377 60.61106 106.74109 61.264799 104.56641 64.619141 C 107.43944 64.580098 110.32146 64.697857 113.18945 64.560547 C 117.93299 64.455196 121.13947 68.674293 125.34766 70.222656 C 122.54591 72.490025 119.74087 74.753707 116.93945 77.021484 L 102.65039 77.021484 C 104.83066 80.274656 109.83098 80.86964 113.54297 80.275391 C 118.23241 78.938666 122.00632 82.851852 126.0625 84.462891 C 128.54474 85.36238 128.16957 88.980576 125.58398 89.349609 C 117.48068 93.165968 107.62402 94.295016 99.337891 90.326172 C 92.798956 87.791458 89.490344 80.889423 88.628906 74.310547 C 87.555524 70.480767 88.797878 65.321389 84.791016 62.951172 C 81.452865 60.87075 76.446064 63.169838 76.355469 67.28125 C 76.104168 73.461469 76.710454 80.529571 72.251953 85.496094 C 66.695639 92.421228 56.262223 93.720392 48.642578 89.628906 C 46.191005 88.475492 44.263645 86.731618 42.789062 84.646484 C 40.778306 87.624665 37.886686 89.945224 34.287109 90.892578 C 23.186535 94.905057 9.3949827 87.530862 7.1699219 75.810547 C 6.2920661 65.129417 7.0348029 54.367013 6.8984375 43.654297 L 6.8964844 43.654297 L 6.9121094 41.662109 z M 19.460938 59.541016 C 19.531085 63.762434 19.149908 68.035365 19.554688 72.259766 C 19.215996 77.345437 25.118222 80.141349 29.494141 78.984375 C 33.824875 78.172778 33.995416 72.893378 33.601562 69.416016 C 33.934996 65.620848 30.774496 62.462124 27.101562 62.138672 C 24.312558 62.395442 21.331191 61.834558 19.460938 59.541016 z M 58.849609 61.095703 C 56.546732 61.201307 54.222999 62.221207 52.878906 64.128906 C 51.067054 67.936191 50.285707 72.745514 51.935547 76.767578 C 54.156749 80.051436 59.960039 79.832586 62.460938 76.900391 C 64.617508 72.893184 63.356924 67.996922 64.507812 63.669922 C 64.068179 61.947149 61.513051 61.293122 59.833984 61.105469 C 59.508828 61.083163 59.178592 61.080617 58.849609 61.095703 z M 99.878906 63.255859 C 99.986816 63.710585 100.08689 64.168363 100.17383 64.630859 C 100.98979 64.673603 101.79324 64.705661 102.4707 64.619141 C 101.60673 64.164644 100.74282 63.710473 99.878906 63.255859 z "
|
||||
transform="translate(-46.55321,504.50721)" />
|
||||
<g
|
||||
id="g1971"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="matrix(3.7795276,0,0,3.7795276,-91.424824,415.23666)">
|
||||
<g
|
||||
id="g948"
|
||||
style="fill:#ff0000" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.7 KiB |
@ -1,83 +0,0 @@
|
||||
<?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"
|
||||
width="134.47168"
|
||||
height="134.47168"
|
||||
id="svg44668"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
|
||||
version="1.0"
|
||||
sodipodi:docname="bone-icon-32.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_16x16.png"
|
||||
inkscape:export-xdpi="11.42"
|
||||
inkscape:export-ydpi="11.42">
|
||||
<defs
|
||||
id="defs44670">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 615.78477 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 615.78477 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 440.39107 : 1"
|
||||
id="perspective44676" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.2796268"
|
||||
inkscape:cx="68.608943"
|
||||
inkscape:cy="137.39433"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1323"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="25"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata44673">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(46.55321,-504.50721)">
|
||||
<path
|
||||
id="rect896"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157;stroke-dasharray:2.00315, 2.00315"
|
||||
d="M 19.513672 0 C 8.7026853 0 0 8.7026853 0 19.513672 L 0 114.95703 C 0 125.76802 8.7026853 134.47266 19.513672 134.47266 L 114.95703 134.47266 C 125.76802 134.47266 134.4707 125.76802 134.4707 114.95703 L 134.4707 19.513672 C 134.4707 8.7026853 125.76802 0 114.95703 0 L 19.513672 0 z M 8.8671875 43.658203 C 11.694448 43.669164 14.522349 43.676539 17.349609 43.6875 C 17.366239 48.395162 17.36637 53.102866 17.376953 57.810547 C 17.664844 63.692663 16.791067 69.705077 17.962891 75.5 C 20.139385 80.654017 26.883407 82.501683 31.802734 80.285156 C 36.07896 78.031114 35.974021 72.251154 35.441406 68.070312 C 35.384041 63.034273 30.209048 59.872211 25.59375 60.054688 C 23.502651 60.467683 22.000898 59.326637 20.626953 57.916016 C 17.658735 56.539047 19.20966 54.915043 21.083984 53.277344 C 22.090869 51.453869 23.820028 51.300648 25.712891 51.527344 C 32.836242 50.750724 39.635346 55.448856 42.472656 61.828125 C 45.07938 55.732601 51.070203 51.084291 57.800781 50.664062 C 61.283548 50.38747 64.798883 51.258511 67.751953 53.123047 C 69.150681 53.607687 70.591751 55.582149 70.740234 55.964844 C 77.288602 48.973435 89.935214 50.112458 95.242188 58.025391 C 98.593959 54.258313 103.06638 51.31429 108.23438 51.085938 C 113.2546 50.600215 118.63379 52.046993 121.96484 56.023438 C 123.52832 57.636763 121.42122 60.21866 121.33398 62.271484 C 119.92329 63.055241 117.29554 62.186177 115.41016 62.320312 C 112.49147 58.443318 106.22085 59.258128 103.41406 62.859375 C 100.89864 61.540775 98.38527 60.217263 95.873047 58.892578 C 97.488873 61.211239 98.089847 63.869595 98.455078 66.609375 L 112.71484 66.609375 C 116.23563 66.043376 118.72015 69.21027 121.70703 70.558594 C 119.87032 72.041008 118.03319 73.52395 116.19922 75.009766 L 100.36719 75.009766 C 99.995497 74.757138 99.705453 74.416511 99.457031 74.037109 C 99.706821 75.213683 100.04124 76.363316 100.53516 77.460938 C 103.16118 82.334264 109.29655 82.878264 114.19727 82.207031 C 117.17082 81.269682 119.48703 83.456657 122.01562 84.642578 C 123.37571 85.658235 128.13784 86.854445 124.26172 87.591797 C 116.02666 91.751704 105.58566 92.171083 97.626953 87.146484 C 91.274898 82.972669 90.573828 74.724084 89.714844 67.863281 C 89.672808 62.928106 84.553427 58.848921 79.761719 60.541016 C 75.877215 61.195138 74.159848 65.196833 74.197266 68.763672 C 74.272951 74.495609 74.367621 81.16967 69.621094 85.269531 C 64.134792 91.105035 54.718724 91.206896 48.212891 87.085938 C 45.606939 85.516667 43.846402 83.187624 42.708984 80.523438 C 41.052122 84.746593 37.520593 88.200544 32.957031 89.144531 C 22.697575 92.521959 10.286941 85.239484 8.9335938 74.371094 C 8.4806172 64.818187 8.904816 55.221707 8.8515625 45.652344 L 8.8671875 43.658203 z M 58.806641 59.074219 C 55.287647 59.207327 51.807589 61.083536 50.367188 64.431641 C 48.964491 69.000523 47.998002 74.616078 50.78125 78.855469 C 54.949479 82.666162 63.722061 81.718228 65.234375 75.628906 C 66.290447 70.237614 65.177139 64.327437 68.158203 59.382812 C 68.625372 58.597231 66.492098 61.63499 66.150391 62.054688 C 64.304291 59.921636 61.543635 58.97069 58.806641 59.074219 z "
|
||||
transform="translate(-46.55321,504.50721)" />
|
||||
<g
|
||||
id="g1971"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
transform="matrix(3.7795276,0,0,3.7795276,95.85931,564.76642)">
|
||||
<g
|
||||
id="g948"
|
||||
style="fill:#ff0000"
|
||||
transform="translate(-49.560509,-39.566021)" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.7 KiB |
@ -1,75 +0,0 @@
|
||||
<?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"
|
||||
width="134.47168"
|
||||
height="134.47168"
|
||||
id="svg44668"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
|
||||
version="1.0"
|
||||
sodipodi:docname="base.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_512x512.png"
|
||||
inkscape:export-xdpi="365.51935"
|
||||
inkscape:export-ydpi="365.51935">
|
||||
<defs
|
||||
id="defs44670">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 615.78477 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 615.78477 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 440.39107 : 1"
|
||||
id="perspective44676" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.2796268"
|
||||
inkscape:cx="68.608943"
|
||||
inkscape:cy="137.39433"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1323"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="25"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata44673">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(46.55321,-504.50721)">
|
||||
<path
|
||||
id="rect896"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157;stroke-dasharray:2.00315, 2.00315"
|
||||
d="M 19.513672,0 C 8.7026856,0 0,8.7026856 0,19.513672 v 95.443358 c 0,10.81099 8.7026856,19.51563 19.513672,19.51563 h 95.443358 c 10.81099,0 19.51367,-8.70464 19.51367,-19.51563 V 19.513672 C 134.4707,8.7026856 125.76802,0 114.95703,0 Z"
|
||||
transform="translate(-46.55321,504.50721)"
|
||||
sodipodi:nodetypes="sssssssss" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1,81 +0,0 @@
|
||||
<?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"
|
||||
width="134.47168"
|
||||
height="134.47168"
|
||||
id="svg44668"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
|
||||
version="1.0"
|
||||
sodipodi:docname="neo-icon-template.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_512x512.png"
|
||||
inkscape:export-xdpi="365.51935"
|
||||
inkscape:export-ydpi="365.51935">
|
||||
<defs
|
||||
id="defs44670">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 615.78477 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 615.78477 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 440.39107 : 1"
|
||||
id="perspective44676" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective44676-2" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.2796268"
|
||||
inkscape:cx="68.608943"
|
||||
inkscape:cy="137.39433"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1323"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="25"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata44673">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(46.55321,-504.50721)">
|
||||
<path
|
||||
id="rect896"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157;stroke-dasharray:2.00315, 2.00315"
|
||||
d="M 19.513672 0 C 8.7026855 0 0 8.7026855 0 19.513672 L 0 114.95703 C 0 125.76802 8.7026855 134.47266 19.513672 134.47266 L 114.95703 134.47266 C 125.76802 134.47266 134.4707 125.76802 134.4707 114.95703 L 134.4707 19.513672 C 134.4707 8.7026855 125.76802 0 114.95703 0 L 19.513672 0 z M 101.29492 42.806641 C 102.57473 42.807172 103.85429 42.881301 105.12305 43.048828 C 109.35189 43.553388 113.43058 45.459448 116.35352 48.585938 C 120.65914 52.982297 122.69862 59.155791 122.9707 65.212891 C 123.13983 70.101441 122.87914 75.12746 121.14648 79.75 C 120.05268 82.7884 117.99726 85.36364 115.61523 87.5 C 113.15368 89.84795 109.85592 91.193442 106.48047 91.451172 C 103.99808 91.596772 101.48763 91.857691 99.015625 91.431641 C 95.552485 91.121191 92.259136 89.639122 89.628906 87.382812 C 87.704406 85.684133 85.705604 83.985208 84.308594 81.804688 C 81.658194 77.570798 80.241844 72.729642 78.527344 68.076172 C 76.959514 69.348152 75.391619 70.620068 73.824219 71.892578 L 54.076172 71.892578 C 53.744092 71.294238 53.373802 70.716409 53.076172 70.099609 C 51.959572 67.691079 52.234509 64.963558 51.917969 62.392578 L 72.5625 62.392578 C 74.22349 63.395718 75.886868 64.394924 77.548828 65.396484 C 76.767498 63.313864 75.941263 61.244566 74.945312 59.253906 C 73.910993 57.378496 72.973618 55.253105 71.085938 54.078125 C 68.677818 52.656455 65.666746 52.595256 63.009766 53.253906 C 60.983916 53.753446 59.394802 55.166613 57.982422 56.626953 C 54.755112 54.924733 51.526588 53.224798 48.298828 51.523438 C 49.708058 50.098367 51.014943 48.558966 52.601562 47.322266 C 57.257173 43.611026 63.48962 42.409626 69.3125 43.066406 C 73.76627 43.532286 78.045427 45.665871 80.935547 49.113281 C 84.334927 53.495111 85.970754 58.889299 87.802734 64.042969 C 88.142744 65.005049 88.542079 66.125242 88.849609 66.982422 C 89.908639 69.844622 91.069673 72.696341 92.720703 75.275391 C 94.578693 78.260391 97.494207 80.746663 101.0293 81.376953 C 104.25983 82.107373 108.04384 81.049251 109.93945 78.207031 C 111.75156 75.442701 111.90226 72.004381 112.02734 68.800781 C 112.20705 64.305291 111.56414 59.497353 108.78125 55.814453 C 106.64487 53.143693 102.90019 52.406927 99.65625 52.841797 C 97.04032 53.174477 95.037421 55.022616 93.144531 56.691406 C 89.950401 54.995806 86.847708 53.136747 83.673828 51.404297 C 84.782188 50.250667 85.821863 49.027523 87.001953 47.945312 C 90.502973 44.671692 95.264395 42.984598 100.01562 42.830078 C 100.44175 42.814743 100.86832 42.806464 101.29492 42.806641 z M 30.931641 43.261719 C 34.290681 43.254889 37.658187 44.016512 40.654297 45.544922 C 44.615647 47.503642 47.612594 51.018369 49.521484 54.949219 C 51.294994 58.581319 51.416593 62.695182 51.908203 66.632812 C 52.259843 69.430753 52.415636 72.340486 53.597656 74.941406 C 55.178486 78.479856 58.6408 80.898789 62.375 81.693359 C 66.52031 82.626009 70.756237 81.817513 74.935547 81.626953 C 78.360237 83.442393 81.784021 85.259525 85.207031 87.078125 C 82.850011 88.030645 80.517061 89.042258 78.144531 89.955078 C 73.083011 91.598078 67.623955 92.095742 62.359375 91.263672 C 57.385905 90.451232 52.352761 88.691233 48.619141 85.189453 C 44.881511 81.417313 43.254499 76.130699 42.443359 71.005859 C 41.774739 67.330039 41.700533 63.5412 40.664062 59.9375 C 39.274452 55.9468 35.108094 53.006981 30.839844 53.394531 C 28.299534 53.407701 26.024444 54.797753 24.271484 56.539062 C 22.044394 58.887702 21.639867 62.295219 21.466797 65.386719 C 21.346157 73.820799 21.576378 82.256486 21.517578 90.691406 L 11.509766 90.691406 C 11.516866 83.332946 11.564609 75.973654 11.537109 68.615234 C 11.385659 64.863234 11.348734 61.037474 12.402344 57.396484 C 13.346354 53.843084 15.454031 50.668969 18.244141 48.292969 C 21.679791 45.148429 26.258251 43.262679 30.931641 43.261719 z "
|
||||
transform="translate(-46.55321,504.50721)" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 6.3 KiB |
@ -1,85 +0,0 @@
|
||||
<?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"
|
||||
width="134.47168"
|
||||
height="134.47168"
|
||||
id="svg44668"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="1.0.2 (e86c8708, 2021-01-15)"
|
||||
version="1.0"
|
||||
sodipodi:docname="neo-icon-template-32.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_16x162x.png"
|
||||
inkscape:export-xdpi="22.844793"
|
||||
inkscape:export-ydpi="22.844793">
|
||||
<defs
|
||||
id="defs44670">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 615.78477 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 615.78477 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 440.39107 : 1"
|
||||
id="perspective44676" />
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective44676-2" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.2796268"
|
||||
inkscape:cx="68.608943"
|
||||
inkscape:cy="137.39433"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1323"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="25"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:snap-page="true"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="false" />
|
||||
<metadata
|
||||
id="metadata44673">
|
||||
<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></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(46.55321,-504.50721)">
|
||||
<path
|
||||
id="rect896"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00157;stroke-dasharray:2.00315, 2.00315"
|
||||
d="M 19.513672 0 C 8.7026855 0 0 8.7026855 0 19.513672 L 0 114.95703 C 0 125.76802 8.7026855 134.47266 19.513672 134.47266 L 114.95703 134.47266 C 125.76802 134.47266 134.4707 125.76802 134.4707 114.95703 L 134.4707 19.513672 C 134.4707 8.7026855 125.76802 0 114.95703 0 L 19.513672 0 z M 101.29492 42.806641 C 102.57473 42.807172 103.85429 42.881301 105.12305 43.048828 C 109.35189 43.553388 113.43058 45.459448 116.35352 48.585938 C 120.65914 52.982297 122.69862 59.155791 122.9707 65.212891 C 123.13983 70.101441 122.87914 75.12746 121.14648 79.75 C 120.05268 82.7884 117.99726 85.36364 115.61523 87.5 C 113.15368 89.84795 109.85592 91.193442 106.48047 91.451172 C 103.99808 91.596772 101.48763 91.857691 99.015625 91.431641 C 95.552485 91.121191 92.259136 89.639122 89.628906 87.382812 C 87.704406 85.684133 85.705604 83.985208 84.308594 81.804688 C 81.658194 77.570798 80.241844 72.729642 78.527344 68.076172 C 76.959514 69.348152 75.391619 70.620068 73.824219 71.892578 L 54.076172 71.892578 C 53.744092 71.294238 53.373802 70.716409 53.076172 70.099609 C 51.959572 67.691079 52.234509 64.963558 51.917969 62.392578 L 72.5625 62.392578 C 74.22349 63.395718 75.886868 64.394924 77.548828 65.396484 C 76.767498 63.313864 75.941263 61.244566 74.945312 59.253906 C 73.910993 57.378496 72.973618 55.253105 71.085938 54.078125 C 68.677818 52.656455 65.666746 52.595256 63.009766 53.253906 C 60.983916 53.753446 59.394802 55.166613 57.982422 56.626953 C 54.755112 54.924733 51.526588 53.224798 48.298828 51.523438 C 49.708058 50.098367 51.014943 48.558966 52.601562 47.322266 C 57.257173 43.611026 63.48962 42.409626 69.3125 43.066406 C 73.76627 43.532286 78.045427 45.665871 80.935547 49.113281 C 84.334927 53.495111 85.970754 58.889299 87.802734 64.042969 C 88.142744 65.005049 88.542079 66.125242 88.849609 66.982422 C 89.908639 69.844622 91.069673 72.696341 92.720703 75.275391 C 94.578693 78.260391 97.494207 80.746663 101.0293 81.376953 C 104.25983 82.107373 108.04384 81.049251 109.93945 78.207031 C 111.75156 75.442701 111.90226 72.004381 112.02734 68.800781 C 112.20705 64.305291 111.56414 59.497353 108.78125 55.814453 C 106.64487 53.143693 102.90019 52.406927 99.65625 52.841797 C 97.04032 53.174477 95.037421 55.022616 93.144531 56.691406 C 89.950401 54.995806 86.847708 53.136747 83.673828 51.404297 C 84.782188 50.250667 85.821863 49.027523 87.001953 47.945312 C 90.502973 44.671692 95.264395 42.984598 100.01562 42.830078 C 100.44175 42.814743 100.86832 42.806464 101.29492 42.806641 z M 30.931641 43.261719 C 34.290681 43.254889 37.658187 44.016512 40.654297 45.544922 C 44.615647 47.503642 47.612594 51.018369 49.521484 54.949219 C 51.294994 58.581319 51.416593 62.695182 51.908203 66.632812 C 52.259843 69.430753 52.415636 72.340486 53.597656 74.941406 C 55.178486 78.479856 58.6408 80.898789 62.375 81.693359 C 66.52031 82.626009 70.756237 81.817513 74.935547 81.626953 C 78.360237 83.442393 81.784021 85.259525 85.207031 87.078125 C 82.850011 88.030645 80.517061 89.042258 78.144531 89.955078 C 73.083011 91.598078 67.623955 92.095742 62.359375 91.263672 C 57.385905 90.451232 52.352761 88.691233 48.619141 85.189453 C 44.881511 81.417313 43.254499 76.130699 42.443359 71.005859 C 41.774739 67.330039 41.700533 63.5412 40.664062 59.9375 C 39.274452 55.9468 35.108094 53.006981 30.839844 53.394531 C 28.299534 53.407701 26.024444 54.797753 24.271484 56.539062 C 22.044394 58.887702 21.639867 62.295219 21.466797 65.386719 C 21.346157 73.820799 21.576378 82.256486 21.517578 90.691406 L 11.509766 90.691406 C 11.516866 83.332946 11.564609 75.973654 11.537109 68.615234 C 11.385659 64.863234 11.348734 61.037474 12.402344 57.396484 C 13.346354 53.843084 15.454031 50.668969 18.244141 48.292969 C 21.679791 45.148429 26.258251 43.262679 30.931641 43.261719 z "
|
||||
transform="translate(-46.55321,504.50721)"
|
||||
inkscape:export-filename="/Users/jgosmann/Documents/projects/neo-layout/mac_osx/test.iconset/icon_32x322x.png"
|
||||
inkscape:export-xdpi="45.689999"
|
||||
inkscape:export-ydpi="45.689999" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.sil.ukelele.keyboardlayout.neo</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>neo-layouts</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.0</string>
|
||||
<key>KLInfo_Deutsch (Bone)</key>
|
||||
<dict>
|
||||
<key>TICapsLockLanguageSwitchCapable</key>
|
||||
<false/>
|
||||
<key>TISIconIsTemplate</key>
|
||||
<true/>
|
||||
<key>TISInputSourceID</key>
|
||||
<string>org.sil.ukelele.keyboardlayout.neo.deutsch(bone)</string>
|
||||
<key>TISIntendedLanguage</key>
|
||||
<string>de</string>
|
||||
</dict>
|
||||
<key>KLInfo_Deutsch (Neo 2)</key>
|
||||
<dict>
|
||||
<key>TICapsLockLanguageSwitchCapable</key>
|
||||
<false/>
|
||||
<key>TISIconIsTemplate</key>
|
||||
<true/>
|
||||
<key>TISInputSourceID</key>
|
||||
<string>org.sil.ukelele.keyboardlayout.neo.deutsch(neo2)</string>
|
||||
<key>TISIntendedLanguage</key>
|
||||
<string>de</string>
|
||||
</dict>
|
||||
<key>KLInfo_Deutsch (NeoQwertz)</key>
|
||||
<dict>
|
||||
<key>TICapsLockLanguageSwitchCapable</key>
|
||||
<false/>
|
||||
<key>TISIconIsTemplate</key>
|
||||
<true/>
|
||||
<key>TISInputSourceID</key>
|
||||
<string>org.sil.ukelele.keyboardlayout.neo.deutsch(neoqwertz)</string>
|
||||
<key>TISIntendedLanguage</key>
|
||||
<string>de</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildVersion</key>
|
||||
<string>0</string>
|
||||
<key>ProjectName</key>
|
||||
<string>neo-layouts</string>
|
||||
<key>SourceVersion</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
BIN
mac_osx/neo.icns
Normal file
@ -1,7 +1,7 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
|
||||
<!--Last edited by Ukelele version 346 on 2022-06-19 at 16:37 (CEST)-->
|
||||
<keyboard group="126" id="-15581" name="Deutsch (Neo 2)" maxout="3">
|
||||
<!--Last edited by Ukelele version 3.3.0.249 on 2019-08-16 at 17:12 (CEST)-->
|
||||
<keyboard group="126" id="-7884" name="Deutsch (Neo 2)" maxout="3">
|
||||
<layouts>
|
||||
<layout first="0" last="0" mapSet="138" modifiers="30"/>
|
||||
</layouts>
|
||||
@ -101,13 +101,12 @@
|
||||
<key code="67" output="*"/>
|
||||
<key code="69" output="+"/>
|
||||
<key code="70" output=""/>
|
||||
<key code="71" output="	"/>
|
||||
<key code="71" output=""/>
|
||||
<key code="72" output=""/>
|
||||
<key code="75" output="/"/>
|
||||
<key code="76" output="
"/>
|
||||
<key code="77" output=""/>
|
||||
<key code="78" output="-"/>
|
||||
<key code="79" output=""/>
|
||||
<key code="80" output=""/>
|
||||
<key code="81" output="="/>
|
||||
<key code="82" output="0"/>
|
||||
@ -208,30 +207,14 @@
|
||||
<key code="52" output=""/>
|
||||
<key code="53" output=""/>
|
||||
<key code="64" output=""/>
|
||||
<key code="65" output="."/>
|
||||
<key code="66" output="*"/>
|
||||
<key code="67" action="*"/>
|
||||
<key code="69" action="+ 1"/>
|
||||
<key code="70" output="+"/>
|
||||
<key code="71" action="	"/>
|
||||
<key code="71" output=""/>
|
||||
<key code="72" output="="/>
|
||||
<key code="75" action="/ 1"/>
|
||||
<key code="76" output=""/>
|
||||
<key code="77" output="/"/>
|
||||
<key code="78" action="- 1"/>
|
||||
<key code="79" output=""/>
|
||||
<key code="80" output=""/>
|
||||
<key code="81" output=""/>
|
||||
<key code="82" output="␣"/>
|
||||
<key code="83" output="♦"/>
|
||||
<key code="84" output="♥"/>
|
||||
<key code="85" output="♠"/>
|
||||
<key code="86" output="♣"/>
|
||||
<key code="87" action="€"/>
|
||||
<key code="88" output="‣"/>
|
||||
<key code="89" output="✔"/>
|
||||
<key code="91" output="✘"/>
|
||||
<key code="92" output="†"/>
|
||||
<key code="96" output=""/>
|
||||
<key code="97" output=""/>
|
||||
<key code="98" output=""/>
|
||||
@ -527,30 +510,30 @@
|
||||
<key code="52" output=""/>
|
||||
<key code="53" output=""/>
|
||||
<key code="64" output=""/>
|
||||
<key code="65" output=","/>
|
||||
<key code="65" output=""/>
|
||||
<key code="66" output=""/>
|
||||
<key code="67" output="⋅"/>
|
||||
<key code="69" output="±"/>
|
||||
<key code="67" output=""/>
|
||||
<key code="69" output=""/>
|
||||
<key code="70" output=""/>
|
||||
<key code="71" output="="/>
|
||||
<key code="71" output=""/>
|
||||
<key code="72" output=""/>
|
||||
<key code="75" output="÷"/>
|
||||
<key code="75" output=""/>
|
||||
<key code="76" output=""/>
|
||||
<key code="77" output=""/>
|
||||
<key code="78" output="−"/>
|
||||
<key code="78" output=""/>
|
||||
<key code="79" output=""/>
|
||||
<key code="80" output=""/>
|
||||
<key code="81" output=""/>
|
||||
<key code="82" output="%"/>
|
||||
<key code="83" output="↔"/>
|
||||
<key code="84" output="↓"/>
|
||||
<key code="85" output="⇌"/>
|
||||
<key code="86" output="←"/>
|
||||
<key code="87" output=":"/>
|
||||
<key code="88" output="→"/>
|
||||
<key code="89" output="↕"/>
|
||||
<key code="91" output="↑"/>
|
||||
<key code="92" output="⃗"/>
|
||||
<key code="82" output=""/>
|
||||
<key code="83" output=""/>
|
||||
<key code="84" output=""/>
|
||||
<key code="85" output=""/>
|
||||
<key code="86" output=""/>
|
||||
<key code="87" output=""/>
|
||||
<key code="88" output=""/>
|
||||
<key code="89" output=""/>
|
||||
<key code="91" output=""/>
|
||||
<key code="92" output=""/>
|
||||
<key code="96" output=""/>
|
||||
<key code="97" output=""/>
|
||||
<key code="98" output=""/>
|
||||
@ -641,30 +624,14 @@
|
||||
<key code="55" output=""/>
|
||||
<key code="58" output=""/>
|
||||
<key code="64" output=""/>
|
||||
<key code="65" action="′"/>
|
||||
<key code="66" output="*"/>
|
||||
<key code="67" action="⊙"/>
|
||||
<key code="69" action="⊕"/>
|
||||
<key code="70" output="+"/>
|
||||
<key code="71" action="≈"/>
|
||||
<key code="71" output=""/>
|
||||
<key code="72" output="="/>
|
||||
<key code="75" action="⌀"/>
|
||||
<key code="76" output=""/>
|
||||
<key code="77" output="/"/>
|
||||
<key code="78" action="⊖"/>
|
||||
<key code="79" output=""/>
|
||||
<key code="80" output=""/>
|
||||
<key code="81" output=""/>
|
||||
<key code="82" action="‰"/>
|
||||
<key code="83" action="Ebene 4 und 6"/>
|
||||
<key code="84" action="∪"/>
|
||||
<key code="85" action="≥"/>
|
||||
<key code="86" action="⊂"/>
|
||||
<key code="87" action="⊶"/>
|
||||
<key code="88" action="⊃"/>
|
||||
<key code="89" action="≪"/>
|
||||
<key code="91" action="∩"/>
|
||||
<key code="92" action="≫"/>
|
||||
<key code="96" output=""/>
|
||||
<key code="97" output=""/>
|
||||
<key code="98" output=""/>
|
||||
@ -685,12 +652,12 @@
|
||||
<key code="113" output=""/>
|
||||
<key code="114" output=""/>
|
||||
<key code="115" output=""/>
|
||||
<key code="116" action=""/>
|
||||
<key code="116" output=""/>
|
||||
<key code="117" output=""/>
|
||||
<key code="118" output=""/>
|
||||
<key code="119" output=""/>
|
||||
<key code="120" output=""/>
|
||||
<key code="121" action=""/>
|
||||
<key code="121" output=""/>
|
||||
<key code="122" output=""/>
|
||||
<key code="123" output=""/>
|
||||
<key code="124" output=""/>
|
||||
@ -955,7 +922,7 @@
|
||||
<key code="46" output="
"/>
|
||||
<key code="47" output="."/>
|
||||
<key code="48" output="	"/>
|
||||
<key code="49" output=" "/>
|
||||
<key code="49" action="5"/>
|
||||
<key code="50" output="<"/>
|
||||
<key code="51" output=""/>
|
||||
<key code="52" output=""/>
|
||||
@ -1131,33 +1098,15 @@
|
||||
</keyMap>
|
||||
</keyMapSet>
|
||||
<actions>
|
||||
<action id="	">
|
||||
<when state="none" output="	"/>
|
||||
<when state="Ebene 4 und 6" output="≠"/>
|
||||
</action>
|
||||
<action id="">
|
||||
<when state="none" next="Bugfixes"/>
|
||||
</action>
|
||||
<action id="">
|
||||
<when state="none" next="Ebene 4 und 6"/>
|
||||
</action>
|
||||
<action id="'">
|
||||
<when state="none" output="'"/>
|
||||
</action>
|
||||
<action id="*">
|
||||
<when state="none" output="*"/>
|
||||
<when state="Ebene 4 und 6" output="×"/>
|
||||
</action>
|
||||
<action id="+">
|
||||
<when state="none" output="+"/>
|
||||
<when state="Ebene 1 T1 Zirkumflex" output="⁺"/>
|
||||
<when state="compose" next="compose +"/>
|
||||
<when state="compose -" output="∓"/>
|
||||
</action>
|
||||
<action id="+ 1">
|
||||
<when state="none" output="+"/>
|
||||
<when state="Ebene 4 und 6" output="∓"/>
|
||||
</action>
|
||||
<action id="-">
|
||||
<when state="none" output="-"/>
|
||||
<when state="Ebene 1 T1 Zirkumflex" output="⁻"/>
|
||||
@ -1165,20 +1114,12 @@
|
||||
<when state="compose +" output="±"/>
|
||||
<when state="compose h" output="ℏ"/>
|
||||
</action>
|
||||
<action id="- 1">
|
||||
<when state="none" output="-"/>
|
||||
<when state="Ebene 4 und 6" output="∖"/>
|
||||
</action>
|
||||
<action id="/">
|
||||
<when state="none" output="/"/>
|
||||
<when state="compose" next="Ebene 3 T3 Schrägstrich"/>
|
||||
<when state="compose less" next="compose less /"/>
|
||||
<when state="compso greater" next="compose greater /"/>
|
||||
</action>
|
||||
<action id="/ 1">
|
||||
<when state="none" output="/"/>
|
||||
<when state="Ebene 4 und 6" output="⁄"/>
|
||||
</action>
|
||||
<action id="0">
|
||||
<when state="none" next="Ebene 1 T2 Gravis"/>
|
||||
</action>
|
||||
@ -2508,7 +2449,7 @@
|
||||
<when state="Ebene 5 T1 Haken" output="Ɣ"/>
|
||||
</action>
|
||||
<action id="5">
|
||||
<when state="none" next="Ebene 1 T1 Zirkumflex"/>
|
||||
<when state="none" output="<"/>
|
||||
</action>
|
||||
<action id="50">
|
||||
<when state="none" output="X"/>
|
||||
@ -3151,12 +3092,9 @@
|
||||
<when state="compose ~" output="≳"/>
|
||||
<when state="compso greater" output="≫"/>
|
||||
</action>
|
||||
<action id="Bugfixes">
|
||||
<when state="none" next="Bugfixes"/>
|
||||
</action>
|
||||
<action id="Ebene 4 und 6">
|
||||
<when state="none" output="≤"/>
|
||||
<when state="Ebene 4 und 6" output="⌊"/>
|
||||
<when state="none" next="Ebene 4 und 6"/>
|
||||
<when state="Ebene 4 und 6" output="∪"/>
|
||||
</action>
|
||||
<action id="`">
|
||||
<when state="none" next="Ebene 1 T2 Gravis"/>
|
||||
@ -3331,14 +3269,6 @@
|
||||
<when state="none" next="Ebene 5 Spiritus lenis"/>
|
||||
<when state="Ebene 4 und 6" next="Ebene 6 T3 Breve"/>
|
||||
</action>
|
||||
<action id="‰">
|
||||
<when state="none" output="‰"/>
|
||||
<when state="Ebene 4 und 6" output="□"/>
|
||||
</action>
|
||||
<action id="′">
|
||||
<when state="none" output="′"/>
|
||||
<when state="Ebene 4 und 6" output="″"/>
|
||||
</action>
|
||||
<action id="₀">
|
||||
<when state="none" output="₀"/>
|
||||
<when state="Ebene 4 und 6" output="∅"/>
|
||||
@ -3355,61 +3285,6 @@
|
||||
<when state="none" output="₃"/>
|
||||
<when state="Ebene 4 und 6" output="∧"/>
|
||||
</action>
|
||||
<action id="€">
|
||||
<when state="none" output="€"/>
|
||||
</action>
|
||||
<action id="∩">
|
||||
<when state="none" output="∩"/>
|
||||
<when state="Ebene 4 und 6" output="⋂"/>
|
||||
</action>
|
||||
<action id="∪">
|
||||
<when state="none" output="∪"/>
|
||||
<when state="Ebene 4 und 6" output="⋃"/>
|
||||
</action>
|
||||
<action id="≈">
|
||||
<when state="none" output="≈"/>
|
||||
<when state="Ebene 4 und 6" output="≡"/>
|
||||
</action>
|
||||
<action id="≥">
|
||||
<when state="none" output="≥"/>
|
||||
<when state="Ebene 4 und 6" output="⌋"/>
|
||||
</action>
|
||||
<action id="≪">
|
||||
<when state="none" output="≪"/>
|
||||
<when state="Ebene 4 und 6" output="⌈"/>
|
||||
</action>
|
||||
<action id="≫">
|
||||
<when state="none" output="≫"/>
|
||||
<when state="Ebene 4 und 6" output="⌉"/>
|
||||
</action>
|
||||
<action id="⊂">
|
||||
<when state="none" output="⊂"/>
|
||||
<when state="Ebene 4 und 6" output="⊆"/>
|
||||
</action>
|
||||
<action id="⊃">
|
||||
<when state="none" output="⊃"/>
|
||||
<when state="Ebene 4 und 6" output="⊇"/>
|
||||
</action>
|
||||
<action id="⊕">
|
||||
<when state="none" output="⊕"/>
|
||||
<when state="Ebene 4 und 6" output="∔"/>
|
||||
</action>
|
||||
<action id="⊖">
|
||||
<when state="none" output="⊖"/>
|
||||
<when state="Ebene 4 und 6" output="∸"/>
|
||||
</action>
|
||||
<action id="⊙">
|
||||
<when state="none" output="⊙"/>
|
||||
<when state="Ebene 4 und 6" output="⊗"/>
|
||||
</action>
|
||||
<action id="⊶">
|
||||
<when state="none" output="⊶"/>
|
||||
<when state="Ebene 4 und 6" output="⊷"/>
|
||||
</action>
|
||||
<action id="⌀">
|
||||
<when state="none" output="⌀"/>
|
||||
<when state="Ebene 4 und 6" output="∣"/>
|
||||
</action>
|
||||
<action id="♀">
|
||||
<when state="none" output="♀"/>
|
||||
<when state="Ebene 4 und 6" output="⊥"/>
|
BIN
mac_osx/neoqwertz.icns
Normal file
@ -1,333 +1,446 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<keyboardLayout>
|
||||
<id>{e8666767-5d2a-4525-8ef8-c6648d7ad372}</id>
|
||||
<title>Deutsch (Neo2)</title>
|
||||
<name>de</name>
|
||||
<width>1500</width>
|
||||
<height>480</height>
|
||||
<keys>
|
||||
<key left="180" top="200" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">U</char>
|
||||
<char position="hidden">u</char>
|
||||
<char position="topRight">⇱</char>
|
||||
<char position="bottomLeft">u</char>
|
||||
<char position="bottomRight" modifier="altgr">\</char>
|
||||
</key>
|
||||
<key left="280" top="200" width="80" height="80" fingerIndex="1">
|
||||
<char position="topLeft" modifier="right_shift">I</char>
|
||||
<char position="hidden">i</char>
|
||||
<char position="topRight">⇠</char>
|
||||
<char position="bottomLeft">i</char>
|
||||
<char position="bottomRight" modifier="altgr">/</char>
|
||||
</key>
|
||||
<key left="380" top="200" width="80" height="80" fingerIndex="2">
|
||||
<char position="topLeft" modifier="right_shift">A</char>
|
||||
<char position="hidden">a</char>
|
||||
<char position="topRight">⇣</char>
|
||||
<char position="bottomLeft">a</char>
|
||||
<char position="bottomRight" modifier="altgr">{</char>
|
||||
</key>
|
||||
<key left="480" top="200" width="80" height="80" fingerIndex="3" hasHapticMarker="true">
|
||||
<char position="topLeft" modifier="right_shift">E</char>
|
||||
<char position="hidden">e</char>
|
||||
<char position="topRight">⇢</char>
|
||||
<char position="bottomLeft">e</char>
|
||||
<char position="bottomRight" modifier="altgr">}</char>
|
||||
</key>
|
||||
<key left="780" top="200" width="80" height="80" fingerIndex="4" hasHapticMarker="true">
|
||||
<char position="topLeft" modifier="right_shift">N</char>
|
||||
<char position="hidden">n</char>
|
||||
<char position="topRight">4</char>
|
||||
<char position="bottomLeft">n</char>
|
||||
<char position="bottomRight" modifier="altgr">(</char>
|
||||
</key>
|
||||
<key left="880" top="200" width="80" height="80" fingerIndex="5">
|
||||
<char position="topLeft" modifier="left_shift">R</char>
|
||||
<char position="hidden">r</char>
|
||||
<char position="topRight">5</char>
|
||||
<char position="bottomLeft">r</char>
|
||||
<char position="bottomRight" modifier="altgr">)</char>
|
||||
</key>
|
||||
<key left="980" top="200" width="80" height="80" fingerIndex="6">
|
||||
<char position="topLeft" modifier="left_shift">T</char>
|
||||
<char position="hidden">t</char>
|
||||
<char position="topRight">6</char>
|
||||
<char position="bottomLeft">t</char>
|
||||
<char position="bottomRight" modifier="altgr">-</char>
|
||||
</key>
|
||||
<key left="1080" top="200" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">D</char>
|
||||
<char position="hidden">d</char>
|
||||
<char position="topRight">,</char>
|
||||
<char position="bottomLeft">d</char>
|
||||
<char position="bottomRight" modifier="altgr">:</char>
|
||||
</key>
|
||||
<key left="0" top="100" width="130" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">⇤</char>
|
||||
<char position="bottomLeft">⇥</char>
|
||||
<char position="bottomRight" modifier="altgr">♫</char>
|
||||
</key>
|
||||
<key left="0" top="0" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">˜</char>
|
||||
<char position="topRight">ˇ</char>
|
||||
<char position="bottomLeft">ˆ</char>
|
||||
<char position="bottomRight" modifier="altgr">˚</char>
|
||||
</key>
|
||||
<key left="100" top="0" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">°</char>
|
||||
<char position="topRight">ª</char>
|
||||
<char position="bottomLeft">1</char>
|
||||
<char position="bottomRight" modifier="altgr">¹</char>
|
||||
</key>
|
||||
<key left="200" top="0" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">§</char>
|
||||
<char position="topRight">º</char>
|
||||
<char position="bottomLeft">2</char>
|
||||
<char position="bottomRight" modifier="altgr">²</char>
|
||||
</key>
|
||||
<key left="300" top="0" width="80" height="80" fingerIndex="1">
|
||||
<char position="topLeft" modifier="right_shift">ℓ</char>
|
||||
<char position="topRight">№</char>
|
||||
<char position="bottomLeft">3</char>
|
||||
<char position="bottomRight" modifier="altgr">³</char>
|
||||
</key>
|
||||
<key left="400" top="0" width="80" height="80" fingerIndex="2">
|
||||
<char position="topLeft" modifier="right_shift">»</char>
|
||||
<char position="topRight">⇞</char>
|
||||
<char position="bottomLeft">4</char>
|
||||
<char position="bottomRight" modifier="altgr">›</char>
|
||||
</key>
|
||||
<key left="500" top="0" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">«</char>
|
||||
<char position="topRight">·</char>
|
||||
<char position="bottomLeft">5</char>
|
||||
<char position="bottomRight" modifier="altgr">‹</char>
|
||||
</key>
|
||||
<key left="600" top="0" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">$</char>
|
||||
<char position="topRight">£</char>
|
||||
<char position="bottomLeft">6</char>
|
||||
<char position="bottomRight" modifier="altgr">¢</char>
|
||||
</key>
|
||||
<key left="700" top="0" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">€</char>
|
||||
<char position="topRight">¤</char>
|
||||
<char position="bottomLeft">7</char>
|
||||
<char position="bottomRight" modifier="altgr">¥</char>
|
||||
</key>
|
||||
<key left="800" top="0" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">„</char>
|
||||
<char position="topRight">⇥</char>
|
||||
<char position="bottomLeft">8</char>
|
||||
<char position="bottomRight" modifier="altgr">‚</char>
|
||||
</key>
|
||||
<key left="900" top="0" width="80" height="80" fingerIndex="5">
|
||||
<char position="topLeft" modifier="left_shift">“</char>
|
||||
<char position="topRight">/</char>
|
||||
<char position="bottomLeft">9</char>
|
||||
<char position="bottomRight" modifier="altgr">‘</char>
|
||||
</key>
|
||||
<key left="1000" top="0" width="80" height="80" fingerIndex="6">
|
||||
<char position="topLeft" modifier="left_shift">”</char>
|
||||
<char position="topRight">*</char>
|
||||
<char position="bottomLeft">0</char>
|
||||
<char position="bottomRight" modifier="altgr">’</char>
|
||||
</key>
|
||||
<key left="1100" top="0" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">—</char>
|
||||
<char position="topRight">-</char>
|
||||
<char position="bottomLeft">-</char>
|
||||
</key>
|
||||
<key left="1200" top="0" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">↻</char>
|
||||
<char position="topRight">̏</char>
|
||||
<char position="bottomLeft">`</char>
|
||||
<char position="bottomRight" modifier="altgr">¨</char>
|
||||
</key>
|
||||
<key left="150" top="100" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">X</char>
|
||||
<char position="hidden">x</char>
|
||||
<char position="topRight">⋮</char>
|
||||
<char position="bottomLeft">x</char>
|
||||
<char position="bottomRight" modifier="altgr">…</char>
|
||||
</key>
|
||||
<key left="250" top="100" width="80" height="80" fingerIndex="1">
|
||||
<char position="topLeft" modifier="right_shift">V</char>
|
||||
<char position="hidden">v</char>
|
||||
<char position="topRight">⌫</char>
|
||||
<char position="bottomLeft">v</char>
|
||||
<char position="bottomRight" modifier="altgr">_</char>
|
||||
</key>
|
||||
<key left="350" top="100" width="80" height="80" fingerIndex="2">
|
||||
<char position="topLeft" modifier="right_shift">L</char>
|
||||
<char position="hidden">l</char>
|
||||
<char position="topRight">⇡</char>
|
||||
<char position="bottomLeft">l</char>
|
||||
<char position="bottomRight" modifier="altgr">[</char>
|
||||
</key>
|
||||
<key left="450" top="100" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">C</char>
|
||||
<char position="hidden">c</char>
|
||||
<char position="topRight">⌦</char>
|
||||
<char position="bottomLeft">c</char>
|
||||
<char position="bottomRight" modifier="altgr">]</char>
|
||||
</key>
|
||||
<key left="550" top="100" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">W</char>
|
||||
<char position="hidden">w</char>
|
||||
<char position="topRight">⎀</char>
|
||||
<char position="bottomLeft">w</char>
|
||||
<char position="bottomRight" modifier="altgr">^</char>
|
||||
</key>
|
||||
<key left="230" top="300" width="80" height="80" fingerIndex="0">
|
||||
<char position="topLeft" modifier="right_shift">Ü</char>
|
||||
<char position="hidden">ü</char>
|
||||
<char position="topRight">⌧</char>
|
||||
<char position="bottomLeft">ü</char>
|
||||
<char position="bottomRight" modifier="altgr">#</char>
|
||||
</key>
|
||||
<key left="750" top="100" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">H</char>
|
||||
<char position="hidden">h</char>
|
||||
<char position="topRight">7</char>
|
||||
<char position="bottomLeft">h</char>
|
||||
<char position="bottomRight" modifier="altgr"><</char>
|
||||
</key>
|
||||
<key left="850" top="100" width="80" height="80" fingerIndex="5">
|
||||
<char position="topLeft" modifier="left_shift">G</char>
|
||||
<char position="hidden">g</char>
|
||||
<char position="topRight">8</char>
|
||||
<char position="bottomLeft">g</char>
|
||||
<char position="bottomRight" modifier="altgr">></char>
|
||||
</key>
|
||||
<key left="950" top="100" width="80" height="80" fingerIndex="6">
|
||||
<char position="topLeft" modifier="left_shift">F</char>
|
||||
<char position="hidden">f</char>
|
||||
<char position="topRight">9</char>
|
||||
<char position="bottomLeft">f</char>
|
||||
<char position="bottomRight" modifier="altgr">=</char>
|
||||
</key>
|
||||
<key left="1050" top="100" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">Q</char>
|
||||
<char position="hidden">q</char>
|
||||
<char position="topRight">+</char>
|
||||
<char position="bottomLeft">q</char>
|
||||
<char position="bottomRight" modifier="altgr">&</char>
|
||||
</key>
|
||||
<key left="1150" top="100" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">ẞ</char>
|
||||
<char position="hidden">ß</char>
|
||||
<char position="topRight">−</char>
|
||||
<char position="bottomLeft">ß</char>
|
||||
<char position="bottomRight" modifier="altgr">ſ</char>
|
||||
</key>
|
||||
<key left="1250" top="100" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">¸</char>
|
||||
<char position="topRight">˝</char>
|
||||
<char position="bottomLeft">´</char>
|
||||
<char position="bottomRight" modifier="altgr">/</char>
|
||||
</key>
|
||||
<key left="580" top="200" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">O</char>
|
||||
<char position="hidden">o</char>
|
||||
<char position="topRight">⇲</char>
|
||||
<char position="bottomLeft">o</char>
|
||||
<char position="bottomRight" modifier="altgr">*</char>
|
||||
</key>
|
||||
<key left="680" top="200" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">S</char>
|
||||
<char position="hidden">s</char>
|
||||
<char position="topRight">¿</char>
|
||||
<char position="bottomLeft">s</char>
|
||||
<char position="bottomRight" modifier="altgr">?</char>
|
||||
</key>
|
||||
<key left="1180" top="200" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">Y</char>
|
||||
<char position="hidden">y</char>
|
||||
<char position="topRight">.</char>
|
||||
<char position="bottomLeft">y</char>
|
||||
<char position="bottomRight" modifier="altgr">@</char>
|
||||
</key>
|
||||
<key left="650" top="100" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">K</char>
|
||||
<char position="hidden">k</char>
|
||||
<char position="topRight">¡</char>
|
||||
<char position="bottomLeft">k</char>
|
||||
<char position="bottomRight" modifier="altgr">!</char>
|
||||
</key>
|
||||
<key left="330" top="300" width="80" height="80" fingerIndex="1">
|
||||
<char position="topLeft" modifier="right_shift">Ö</char>
|
||||
<char position="hidden">ö</char>
|
||||
<char position="topRight">⇥</char>
|
||||
<char position="bottomLeft">ö</char>
|
||||
<char position="bottomRight" modifier="altgr">$</char>
|
||||
</key>
|
||||
<key left="430" top="300" width="80" height="80" fingerIndex="2">
|
||||
<char position="topLeft" modifier="right_shift">Ä</char>
|
||||
<char position="hidden">ä</char>
|
||||
<char position="topRight">⇟</char>
|
||||
<char position="bottomLeft">ä</char>
|
||||
<char position="bottomRight" modifier="altgr">|</char>
|
||||
</key>
|
||||
<key left="530" top="300" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">P</char>
|
||||
<char position="hidden">p</char>
|
||||
<char position="topRight">⏎</char>
|
||||
<char position="bottomLeft">p</char>
|
||||
<char position="bottomRight" modifier="altgr">~</char>
|
||||
</key>
|
||||
<key left="630" top="300" width="80" height="80" fingerIndex="3">
|
||||
<char position="topLeft" modifier="right_shift">Z</char>
|
||||
<char position="hidden">z</char>
|
||||
<char position="topRight">↶</char>
|
||||
<char position="bottomLeft">z</char>
|
||||
<char position="bottomRight" modifier="altgr">`</char>
|
||||
</key>
|
||||
<key left="730" top="300" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">B</char>
|
||||
<char position="hidden">b</char>
|
||||
<char position="topRight">:</char>
|
||||
<char position="bottomLeft">b</char>
|
||||
<char position="bottomRight" modifier="altgr">+</char>
|
||||
</key>
|
||||
<key left="830" top="300" width="80" height="80" fingerIndex="4">
|
||||
<char position="topLeft" modifier="right_shift">M</char>
|
||||
<char position="hidden">m</char>
|
||||
<char position="topRight">1</char>
|
||||
<char position="bottomLeft">m</char>
|
||||
<char position="bottomRight" modifier="altgr">%</char>
|
||||
</key>
|
||||
<key left="930" top="300" width="80" height="80" fingerIndex="5">
|
||||
<char position="topLeft" modifier="left_shift">–</char>
|
||||
<char position="topRight">2</char>
|
||||
<char position="bottomLeft">,</char>
|
||||
<char position="bottomRight" modifier="altgr">"</char>
|
||||
</key>
|
||||
<key left="1030" top="300" width="80" height="80" fingerIndex="6">
|
||||
<char position="topLeft" modifier="left_shift">•</char>
|
||||
<char position="topRight">3</char>
|
||||
<char position="bottomLeft">.</char>
|
||||
<char position="bottomRight" modifier="altgr">'</char>
|
||||
</key>
|
||||
<key left="1130" top="300" width="80" height="80" fingerIndex="7">
|
||||
<char position="topLeft" modifier="left_shift">J</char>
|
||||
<char position="hidden">j</char>
|
||||
<char position="topRight">;</char>
|
||||
<char position="bottomLeft">j</char>
|
||||
<char position="bottomRight" modifier="altgr">;</char>
|
||||
</key>
|
||||
<specialKey left="1380" top="100" width="120" height="180" type="return"/>
|
||||
<specialKey left="1230" top="300" width="270" height="80" type="shift" modifierId="left_shift"/>
|
||||
<specialKey left="990" top="400" width="110" height="80" type="other" label="M4"/>
|
||||
<specialKey left="1380" top="400" width="120" height="80" type="other" label="Strg"/>
|
||||
<specialKey left="290" top="400" width="100" height="80" type="other" label="Alt"/>
|
||||
<specialKey left="0" top="400" width="150" height="80" type="other" label="Strg"/>
|
||||
<specialKey left="410" top="400" width="560" height="80" type="space"/>
|
||||
<specialKey left="0" top="300" width="110" height="80" type="shift" modifierId="left_shift"/>
|
||||
<specialKey left="0" top="200" width="160" height="80" type="other" label="M3"/>
|
||||
<specialKey left="1300" top="0" width="200" height="80" type="backspace"/>
|
||||
<specialKey left="130" top="300" width="80" height="80" type="other" label="M4"/>
|
||||
<specialKey left="1280" top="200" width="80" height="80" type="other" label="M3"/>
|
||||
<specialKey left="1250" top="400" width="110" height="80" type="other" label="Menu"/>
|
||||
</keys>
|
||||
</keyboardLayout>
|
||||
<KTouchKeyboard>
|
||||
<Title>Deutsch (Neo2)</Title>
|
||||
<Comment>Neo 2, Ebenen 1–4
|
||||
26.07.2009</Comment>
|
||||
<FontSuggestions>Sans Serif,9,-1,5,50,0,0,0,0,0</FontSuggestions>
|
||||
<Language>de</Language>
|
||||
<Keys>
|
||||
<Key Width="80" X="-920" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="85" Position="TopLeft" >U</Char>
|
||||
<Char Unicode="8689" Position="TopRight" >⇱</Char>
|
||||
<Char Unicode="117" Position="BottomLeft" >u</Char>
|
||||
<Char Unicode="92" Position="BottomRight" >\</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-820" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="73" Position="TopLeft" >I</Char>
|
||||
<Char Unicode="8672" Position="TopRight" >⇠</Char>
|
||||
<Char Unicode="105" Position="BottomLeft" >i</Char>
|
||||
<Char Unicode="47" Position="BottomRight" >/</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-720" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="65" Position="TopLeft" >A</Char>
|
||||
<Char Unicode="8675" Position="TopRight" >⇣</Char>
|
||||
<Char Unicode="97" Position="BottomLeft" >a</Char>
|
||||
<Char Unicode="123" Position="BottomRight" >{</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-620" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="69" Position="TopLeft" >E</Char>
|
||||
<Char Unicode="8674" Position="TopRight" >⇢</Char>
|
||||
<Char Unicode="101" Position="BottomLeft" >e</Char>
|
||||
<Char Unicode="125" Position="BottomRight" >}</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-320" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="78" Position="TopLeft" >N</Char>
|
||||
<Char Unicode="52" Position="TopRight" >4</Char>
|
||||
<Char Unicode="110" Position="BottomLeft" >n</Char>
|
||||
<Char Unicode="40" Position="BottomRight" >(</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-220" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="82" Position="TopLeft" >R</Char>
|
||||
<Char Unicode="53" Position="TopRight" >5</Char>
|
||||
<Char Unicode="114" Position="BottomLeft" >r</Char>
|
||||
<Char Unicode="41" Position="BottomRight" >)</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-120" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="84" Position="TopLeft" >T</Char>
|
||||
<Char Unicode="54" Position="TopRight" >6</Char>
|
||||
<Char Unicode="116" Position="BottomLeft" >t</Char>
|
||||
<Char Unicode="45" Position="BottomRight" >-</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-20" Y="200" Height="80" Type="FINGER" >
|
||||
<Char Unicode="68" Position="TopLeft" >D</Char>
|
||||
<Char Unicode="44" Position="TopRight" >,</Char>
|
||||
<Char Unicode="100" Position="BottomLeft" >d</Char>
|
||||
<Char Unicode="58" Position="BottomRight" >:</Char>
|
||||
</Key>
|
||||
<Key Width="130" X="-1100" Y="100" Height="80" Type="NORMAL" >
|
||||
<Char Unicode="8676" Position="TopLeft" >⇤</Char>
|
||||
<Char Unicode="8677" Position="BottomLeft" >⇥</Char>
|
||||
<Char Unicode="9835" Position="BottomRight" >♫</Char>
|
||||
</Key>
|
||||
<Key Width="120" X="280" Y="100" Height="180" Type="ENTER" />
|
||||
<Key Width="270" X="130" Y="300" Height="80" Type="SHIFT" />
|
||||
<Key Width="110" X="-110" KeyText="M4" Y="400" Height="80" Type="OTHER" />
|
||||
<Key Width="120" X="280" KeyText="Strg" Y="400" Height="80" Type="OTHER" />
|
||||
<Key Width="100" X="-810" KeyText="Alt" Y="400" Height="80" Type="OTHER" />
|
||||
<Key Width="150" X="-1100" KeyText="Strg" Y="400" Height="80" Type="OTHER" />
|
||||
<Key Width="560" X="-690" Y="400" Height="80" Type="SPACE" >
|
||||
<Char Unicode="32" Position="TopLeft" > </Char>
|
||||
<Char Unicode="48" Position="TopRight" >0</Char>
|
||||
<Char Unicode="32" Position="BottomLeft" > </Char>
|
||||
<Char Unicode="32" Position="BottomRight" > </Char>
|
||||
</Key>
|
||||
<Key Width="110" X="-1100" Y="300" Height="80" Type="SHIFT" />
|
||||
<Key Width="160" X="-1100" KeyText="M3" Y="200" Height="80" Type="OTHER" />
|
||||
<Key Width="200" X="200" Y="0" Height="80" Type="BACKSPACE" />
|
||||
<Key Width="80" X="-1100" Y="0" Height="80" FingerKeyIndex="0" Type="NORMAL" >
|
||||
<Char Unicode="732" Position="TopLeft" >˜</Char>
|
||||
<Char Unicode="711" Position="TopRight" >ˇ</Char>
|
||||
<Char Unicode="710" Position="BottomLeft" >ˆ</Char>
|
||||
<Char Unicode="730" Position="BottomRight" >˚</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-1000" Y="0" Height="80" FingerKeyIndex="0" Type="NORMAL" >
|
||||
<Char Unicode="176" Position="TopLeft" >°</Char>
|
||||
<Char Unicode="170" Position="TopRight" >ª</Char>
|
||||
<Char Unicode="49" Position="BottomLeft" >1</Char>
|
||||
<Char Unicode="185" Position="BottomRight" >¹</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-900" Y="0" Height="80" FingerKeyIndex="0" Type="NORMAL" >
|
||||
<Char Unicode="167" Position="TopLeft" >§</Char>
|
||||
<Char Unicode="186" Position="TopRight" >º</Char>
|
||||
<Char Unicode="50" Position="BottomLeft" >2</Char>
|
||||
<Char Unicode="178" Position="BottomRight" >²</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-800" Y="0" Height="80" FingerKeyIndex="1" Type="NORMAL" >
|
||||
<Char Unicode="8467" Position="TopLeft" >ℓ</Char>
|
||||
<Char Unicode="8470" Position="TopRight" >№</Char>
|
||||
<Char Unicode="51" Position="BottomLeft" >3</Char>
|
||||
<Char Unicode="179" Position="BottomRight" >³</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-700" Y="0" Height="80" FingerKeyIndex="2" Type="NORMAL" >
|
||||
<Char Unicode="187" Position="TopLeft" >»</Char>
|
||||
<Char Unicode="8670" Position="TopRight" >⇞</Char>
|
||||
<Char Unicode="52" Position="BottomLeft" >4</Char>
|
||||
<Char Unicode="8250" Position="BottomRight" >›</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-600" Y="0" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="171" Position="TopLeft" >«</Char>
|
||||
<Char Unicode="183" Position="TopRight" >·</Char>
|
||||
<Char Unicode="53" Position="BottomLeft" >5</Char>
|
||||
<Char Unicode="8249" Position="BottomRight" >‹</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-500" Y="0" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="36" Position="TopLeft" >$</Char>
|
||||
<Char Unicode="163" Position="TopRight" >£</Char>
|
||||
<Char Unicode="54" Position="BottomLeft" >6</Char>
|
||||
<Char Unicode="162" Position="BottomRight" >¢</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-400" Y="0" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="8364" Position="TopLeft" >€</Char>
|
||||
<Char Unicode="164" Position="TopRight" >¤</Char>
|
||||
<Char Unicode="55" Position="BottomLeft" >7</Char>
|
||||
<Char Unicode="165" Position="BottomRight" >¥</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-300" Y="0" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="8222" Position="TopLeft" >„</Char>
|
||||
<Char Unicode="8677" Position="TopRight" >⇥</Char>
|
||||
<Char Unicode="56" Position="BottomLeft" >8</Char>
|
||||
<Char Unicode="8218" Position="BottomRight" >‚</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-200" Y="0" Height="80" FingerKeyIndex="5" Type="NORMAL" >
|
||||
<Char Unicode="8220" Position="TopLeft" >“</Char>
|
||||
<Char Unicode="47" Position="TopRight" >/</Char>
|
||||
<Char Unicode="57" Position="BottomLeft" >9</Char>
|
||||
<Char Unicode="8216" Position="BottomRight" >‘</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-100" Y="0" Height="80" FingerKeyIndex="6" Type="NORMAL" >
|
||||
<Char Unicode="8221" Position="TopLeft" >”</Char>
|
||||
<Char Unicode="42" Position="TopRight" >*</Char>
|
||||
<Char Unicode="48" Position="BottomLeft" >0</Char>
|
||||
<Char Unicode="8217" Position="BottomRight" >’</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="0" Y="0" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="8212" Position="TopLeft" >—</Char>
|
||||
<Char Unicode="45" Position="TopRight" >-</Char>
|
||||
<Char Unicode="45" Position="BottomLeft" >-</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="100" Y="0" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="8635" Position="TopLeft" >↻</Char>
|
||||
<Char Unicode="783" Position="TopRight" >̏</Char>
|
||||
<Char Unicode="96" Position="BottomLeft" >`</Char>
|
||||
<Char Unicode="168" Position="BottomRight" >¨</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-950" Y="100" Height="80" FingerKeyIndex="0" Type="NORMAL" >
|
||||
<Char Unicode="88" Position="TopLeft" >X</Char>
|
||||
<Char Unicode="8942" Position="TopRight" >⋮</Char>
|
||||
<Char Unicode="120" Position="BottomLeft" >x</Char>
|
||||
<Char Unicode="8230" Position="BottomRight" >…</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-850" Y="100" Height="80" FingerKeyIndex="1" Type="NORMAL" >
|
||||
<Char Unicode="86" Position="TopLeft" >V</Char>
|
||||
<Char Unicode="9003" Position="TopRight" >⌫</Char>
|
||||
<Char Unicode="118" Position="BottomLeft" >v</Char>
|
||||
<Char Unicode="95" Position="BottomRight" >_</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-750" Y="100" Height="80" FingerKeyIndex="2" Type="NORMAL" >
|
||||
<Char Unicode="76" Position="TopLeft" >L</Char>
|
||||
<Char Unicode="8673" Position="TopRight" >⇡</Char>
|
||||
<Char Unicode="108" Position="BottomLeft" >l</Char>
|
||||
<Char Unicode="91" Position="BottomRight" >[</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-650" Y="100" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="67" Position="TopLeft" >C</Char>
|
||||
<Char Unicode="8998" Position="TopRight" >⌦</Char>
|
||||
<Char Unicode="99" Position="BottomLeft" >c</Char>
|
||||
<Char Unicode="93" Position="BottomRight" >]</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-550" Y="100" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="87" Position="TopLeft" >W</Char>
|
||||
<Char Unicode="9088" Position="TopRight" >⎀</Char>
|
||||
<Char Unicode="119" Position="BottomLeft" >w</Char>
|
||||
<Char Unicode="94" Position="BottomRight" >^</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-870" Y="300" Height="80" FingerKeyIndex="0" Type="NORMAL" >
|
||||
<Char Unicode="220" Position="TopLeft" >Ü</Char>
|
||||
<Char Unicode="8999" Position="TopRight" >⌧</Char>
|
||||
<Char Unicode="252" Position="BottomLeft" >ü</Char>
|
||||
<Char Unicode="35" Position="BottomRight" >#</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-350" Y="100" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="72" Position="TopLeft" >H</Char>
|
||||
<Char Unicode="55" Position="TopRight" >7</Char>
|
||||
<Char Unicode="104" Position="BottomLeft" >h</Char>
|
||||
<Char Unicode="60" Position="BottomRight" ><</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-250" Y="100" Height="80" FingerKeyIndex="5" Type="NORMAL" >
|
||||
<Char Unicode="71" Position="TopLeft" >G</Char>
|
||||
<Char Unicode="56" Position="TopRight" >8</Char>
|
||||
<Char Unicode="103" Position="BottomLeft" >g</Char>
|
||||
<Char Unicode="62" Position="BottomRight" >></Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-150" Y="100" Height="80" FingerKeyIndex="6" Type="NORMAL" >
|
||||
<Char Unicode="70" Position="TopLeft" >F</Char>
|
||||
<Char Unicode="57" Position="TopRight" >9</Char>
|
||||
<Char Unicode="102" Position="BottomLeft" >f</Char>
|
||||
<Char Unicode="61" Position="BottomRight" >=</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-50" Y="100" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="81" Position="TopLeft" >Q</Char>
|
||||
<Char Unicode="43" Position="TopRight" >+</Char>
|
||||
<Char Unicode="113" Position="BottomLeft" >q</Char>
|
||||
<Char Unicode="38" Position="BottomRight" >&</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="50" Y="100" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="7838" Position="TopLeft" >ẞ</Char>
|
||||
<Char Unicode="8722" Position="TopRight" >−</Char>
|
||||
<Char Unicode="223" Position="BottomLeft" >ß</Char>
|
||||
<Char Unicode="383" Position="BottomRight" >ſ</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="150" Y="100" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="184" Position="TopLeft" >¸</Char>
|
||||
<Char Unicode="733" Position="TopRight" >˝</Char>
|
||||
<Char Unicode="180" Position="BottomLeft" >´</Char>
|
||||
<Char Unicode="47" Position="BottomRight" >/</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-520" Y="200" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="79" Position="TopLeft" >O</Char>
|
||||
<Char Unicode="8690" Position="TopRight" >⇲</Char>
|
||||
<Char Unicode="111" Position="BottomLeft" >o</Char>
|
||||
<Char Unicode="42" Position="BottomRight" >*</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-420" Y="200" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="83" Position="TopLeft" >S</Char>
|
||||
<Char Unicode="191" Position="TopRight" >¿</Char>
|
||||
<Char Unicode="115" Position="BottomLeft" >s</Char>
|
||||
<Char Unicode="63" Position="BottomRight" >?</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="80" Y="200" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="89" Position="TopLeft" >Y</Char>
|
||||
<Char Unicode="46" Position="TopRight" >.</Char>
|
||||
<Char Unicode="121" Position="BottomLeft" >y</Char>
|
||||
<Char Unicode="64" Position="BottomRight" >@</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-970" KeyText="M4" Y="300" Height="80" FingerKeyIndex="7" Type="OTHER" />
|
||||
<Key Width="80" X="-450" Y="100" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="75" Position="TopLeft" >K</Char>
|
||||
<Char Unicode="161" Position="TopRight" >¡</Char>
|
||||
<Char Unicode="107" Position="BottomLeft" >k</Char>
|
||||
<Char Unicode="33" Position="BottomRight" >!</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-770" Y="300" Height="80" FingerKeyIndex="1" Type="NORMAL" >
|
||||
<Char Unicode="214" Position="TopLeft" >Ö</Char>
|
||||
<Char Unicode="8677" Position="TopRight" >⇥</Char>
|
||||
<Char Unicode="246" Position="BottomLeft" >ö</Char>
|
||||
<Char Unicode="36" Position="BottomRight" >$</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-670" Y="300" Height="80" FingerKeyIndex="2" Type="NORMAL" >
|
||||
<Char Unicode="196" Position="TopLeft" >Ä</Char>
|
||||
<Char Unicode="8671" Position="TopRight" >⇟</Char>
|
||||
<Char Unicode="228" Position="BottomLeft" >ä</Char>
|
||||
<Char Unicode="124" Position="BottomRight" >|</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-570" Y="300" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="80" Position="TopLeft" >P</Char>
|
||||
<Char Unicode="8626" Position="TopRight" >⏎</Char>
|
||||
<Char Unicode="112" Position="BottomLeft" >p</Char>
|
||||
<Char Unicode="126" Position="BottomRight" >~</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-470" Y="300" Height="80" FingerKeyIndex="3" Type="NORMAL" >
|
||||
<Char Unicode="90" Position="TopLeft" >Z</Char>
|
||||
<Char Unicode="8630" Position="TopRight" >↶</Char>
|
||||
<Char Unicode="122" Position="BottomLeft" >z</Char>
|
||||
<Char Unicode="96" Position="BottomRight" >`</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-370" Y="300" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="66" Position="TopLeft" >B</Char>
|
||||
<Char Unicode="58" Position="TopRight" >:</Char>
|
||||
<Char Unicode="98" Position="BottomLeft" >b</Char>
|
||||
<Char Unicode="43" Position="BottomRight" >+</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-270" Y="300" Height="80" FingerKeyIndex="4" Type="NORMAL" >
|
||||
<Char Unicode="77" Position="TopLeft" >M</Char>
|
||||
<Char Unicode="49" Position="TopRight" >1</Char>
|
||||
<Char Unicode="109" Position="BottomLeft" >m</Char>
|
||||
<Char Unicode="37" Position="BottomRight" >%</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-170" Y="300" Height="80" FingerKeyIndex="5" Type="NORMAL" >
|
||||
<Char Unicode="8211" Position="TopLeft" >–</Char>
|
||||
<Char Unicode="50" Position="TopRight" >2</Char>
|
||||
<Char Unicode="44" Position="BottomLeft" >,</Char>
|
||||
<Char Unicode="34" Position="BottomRight" >"</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="-70" Y="300" Height="80" FingerKeyIndex="6" Type="NORMAL" >
|
||||
<Char Unicode="8226" Position="TopLeft" >•</Char>
|
||||
<Char Unicode="51" Position="TopRight" >3</Char>
|
||||
<Char Unicode="46" Position="BottomLeft" >.</Char>
|
||||
<Char Unicode="39" Position="BottomRight" >'</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="30" Y="300" Height="80" FingerKeyIndex="7" Type="NORMAL" >
|
||||
<Char Unicode="74" Position="TopLeft" >J</Char>
|
||||
<Char Unicode="59" Position="TopRight" >;</Char>
|
||||
<Char Unicode="106" Position="BottomLeft" >j</Char>
|
||||
<Char Unicode="59" Position="BottomRight" >;</Char>
|
||||
</Key>
|
||||
<Key Width="80" X="180" KeyText="M3" Y="200" Height="80" Type="OTHER" />
|
||||
<Key Width="110" X="150" KeyText="Menu" Y="400" Height="80" Type="OTHER" />
|
||||
</Keys>
|
||||
<Connections>
|
||||
<KeyConnector KeyUnicode="8" TargetKeyIndex="33" ModifierIndex="11" />
|
||||
<KeyConnector KeyUnicode="13" TargetKeyIndex="9" />
|
||||
<KeyConnector KeyUnicode="32" TargetKeyIndex="15" />
|
||||
<KeyConnector KeyUnicode="33" TargetKeyIndex="48" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="34" TargetKeyIndex="55" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="35" TargetKeyIndex="37" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="36" TargetKeyIndex="25" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="38" TargetKeyIndex="41" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="39" TargetKeyIndex="56" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="40" TargetKeyIndex="4" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="41" TargetKeyIndex="5" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="42" TargetKeyIndex="44" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="44" TargetKeyIndex="55" />
|
||||
<KeyConnector KeyUnicode="45" TargetKeyIndex="30" />
|
||||
<KeyConnector KeyUnicode="46" TargetKeyIndex="56" />
|
||||
<KeyConnector KeyUnicode="47" TargetKeyIndex="1" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="48" TargetKeyIndex="29" />
|
||||
<KeyConnector KeyUnicode="49" TargetKeyIndex="20" />
|
||||
<KeyConnector KeyUnicode="50" TargetKeyIndex="21" />
|
||||
<KeyConnector KeyUnicode="51" TargetKeyIndex="22" />
|
||||
<KeyConnector KeyUnicode="52" TargetKeyIndex="23" />
|
||||
<KeyConnector KeyUnicode="53" TargetKeyIndex="24" />
|
||||
<KeyConnector KeyUnicode="54" TargetKeyIndex="25" />
|
||||
<KeyConnector KeyUnicode="55" TargetKeyIndex="26" />
|
||||
<KeyConnector KeyUnicode="56" TargetKeyIndex="27" />
|
||||
<KeyConnector KeyUnicode="57" TargetKeyIndex="28" />
|
||||
<KeyConnector KeyUnicode="58" TargetKeyIndex="7" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="59" TargetKeyIndex="57" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="60" TargetKeyIndex="38" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="61" TargetKeyIndex="40" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="62" TargetKeyIndex="39" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="63" TargetKeyIndex="45" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="64" TargetKeyIndex="46" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="65" TargetKeyIndex="2" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="66" TargetKeyIndex="53" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="67" TargetKeyIndex="35" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="68" TargetKeyIndex="7" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="69" TargetKeyIndex="3" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="70" TargetKeyIndex="40" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="71" TargetKeyIndex="39" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="72" TargetKeyIndex="38" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="73" TargetKeyIndex="1" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="74" TargetKeyIndex="57" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="75" TargetKeyIndex="48" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="76" TargetKeyIndex="34" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="77" TargetKeyIndex="54" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="78" TargetKeyIndex="4" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="79" TargetKeyIndex="44" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="80" TargetKeyIndex="51" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="81" TargetKeyIndex="41" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="82" TargetKeyIndex="5" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="83" TargetKeyIndex="45" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="84" TargetKeyIndex="6" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="85" TargetKeyIndex="0" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="86" TargetKeyIndex="33" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="87" TargetKeyIndex="36" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="88" TargetKeyIndex="32" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="89" TargetKeyIndex="46" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="90" TargetKeyIndex="52" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="91" TargetKeyIndex="34" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="92" TargetKeyIndex="0" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="93" TargetKeyIndex="35" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="94" TargetKeyIndex="36" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="95" TargetKeyIndex="33" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="96" TargetKeyIndex="52" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="97" TargetKeyIndex="2" />
|
||||
<KeyConnector KeyUnicode="98" TargetKeyIndex="53" />
|
||||
<KeyConnector KeyUnicode="99" TargetKeyIndex="35" />
|
||||
<KeyConnector KeyUnicode="100" TargetKeyIndex="7" />
|
||||
<KeyConnector KeyUnicode="101" TargetKeyIndex="3" />
|
||||
<KeyConnector KeyUnicode="102" TargetKeyIndex="40" />
|
||||
<KeyConnector KeyUnicode="103" TargetKeyIndex="39" />
|
||||
<KeyConnector KeyUnicode="104" TargetKeyIndex="38" />
|
||||
<KeyConnector KeyUnicode="105" TargetKeyIndex="1" />
|
||||
<KeyConnector KeyUnicode="106" TargetKeyIndex="57" />
|
||||
<KeyConnector KeyUnicode="107" TargetKeyIndex="48" />
|
||||
<KeyConnector KeyUnicode="108" TargetKeyIndex="34" />
|
||||
<KeyConnector KeyUnicode="109" TargetKeyIndex="54" />
|
||||
<KeyConnector KeyUnicode="110" TargetKeyIndex="4" />
|
||||
<KeyConnector KeyUnicode="111" TargetKeyIndex="44" />
|
||||
<KeyConnector KeyUnicode="112" TargetKeyIndex="51" />
|
||||
<KeyConnector KeyUnicode="113" TargetKeyIndex="41" />
|
||||
<KeyConnector KeyUnicode="114" TargetKeyIndex="5" />
|
||||
<KeyConnector KeyUnicode="115" TargetKeyIndex="45" />
|
||||
<KeyConnector KeyUnicode="116" TargetKeyIndex="6" />
|
||||
<KeyConnector KeyUnicode="117" TargetKeyIndex="0" />
|
||||
<KeyConnector KeyUnicode="118" TargetKeyIndex="33" />
|
||||
<KeyConnector KeyUnicode="119" TargetKeyIndex="36" />
|
||||
<KeyConnector KeyUnicode="120" TargetKeyIndex="32" />
|
||||
<KeyConnector KeyUnicode="121" TargetKeyIndex="46" />
|
||||
<KeyConnector KeyUnicode="122" TargetKeyIndex="52" />
|
||||
<KeyConnector KeyUnicode="123" TargetKeyIndex="2" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="125" TargetKeyIndex="3" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="126" TargetKeyIndex="51" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="161" TargetKeyIndex="48" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="162" TargetKeyIndex="25" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="163" TargetKeyIndex="25" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="164" TargetKeyIndex="26" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="165" TargetKeyIndex="26" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="167" TargetKeyIndex="21" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="170" TargetKeyIndex="20" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="171" TargetKeyIndex="24" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="176" TargetKeyIndex="20" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="178" TargetKeyIndex="21" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="179" TargetKeyIndex="22" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="183" TargetKeyIndex="24" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="185" TargetKeyIndex="20" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="186" TargetKeyIndex="21" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="187" TargetKeyIndex="23" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="191" TargetKeyIndex="45" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="196" TargetKeyIndex="50" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="214" TargetKeyIndex="49" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="220" TargetKeyIndex="37" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="223" TargetKeyIndex="42" />
|
||||
<KeyConnector KeyUnicode="228" TargetKeyIndex="50" />
|
||||
<KeyConnector KeyUnicode="246" TargetKeyIndex="49" />
|
||||
<KeyConnector KeyUnicode="252" TargetKeyIndex="37" />
|
||||
<KeyConnector KeyUnicode="383" TargetKeyIndex="42" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="7838" TargetKeyIndex="42" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8211" TargetKeyIndex="55" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8212" TargetKeyIndex="30" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8216" TargetKeyIndex="28" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8217" TargetKeyIndex="29" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8218" TargetKeyIndex="27" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8220" TargetKeyIndex="28" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8221" TargetKeyIndex="29" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8222" TargetKeyIndex="27" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8226" TargetKeyIndex="56" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8230" TargetKeyIndex="32" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8249" TargetKeyIndex="24" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8250" TargetKeyIndex="23" ModifierIndex="17" />
|
||||
<KeyConnector KeyUnicode="8364" TargetKeyIndex="26" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8467" TargetKeyIndex="22" ModifierIndex="16" />
|
||||
<KeyConnector KeyUnicode="8470" TargetKeyIndex="22" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="8722" TargetKeyIndex="42" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="8942" TargetKeyIndex="32" ModifierIndex="47" />
|
||||
<KeyConnector KeyUnicode="9088" TargetKeyIndex="36" ModifierIndex="47" />
|
||||
</Connections>
|
||||
</KTouchKeyboard>
|
||||
|
@ -1,2 +1,2 @@
|
||||
Siehe Webseite:
|
||||
https://neo-layout.org/Lernen/SortWords/
|
||||
Siehe Wiki:
|
||||
http://wiki.neo-layout.org/wiki/SortWords
|
||||
|
@ -836,85 +836,85 @@ wirbt wobei wohnungsbau wunderbar zagreb zb zentralbank zugegeben
|
||||
===b===
|
||||
zusammenarbeit zusammenarbeiten zusammenbruch zweieinhalb
|
||||
===ä===
|
||||
abhängig abhängigkeit ähnlich ähnliche ähnlichen ähnlicher ähnliches
|
||||
aktionäre aktionären allmählich älter ältere älteren älterer älteste
|
||||
ältesten ämter ändern ändert änderte änderung änderungen ängste
|
||||
anhänger anhängern annähernd annäherung ansätze anschläge anschlägen
|
||||
abhängig abhängigkeit aktionäre aktionären allmählich anhänger anhängern
|
||||
annähernd annäherung anschläge anschlägen ansätze anträge anwälte
|
||||
arbeitsplätze arbeitsplätzen atmosphäre ausgewählt ausgewählte
|
||||
ausgewählten ausländer ausländern ausländische ausländischen
|
||||
===ä===
|
||||
anträge anwälte ära arbeitsplätze arbeitsplätzen ärger ärgert ärzte
|
||||
ärzten ästhetik atmosphäre ausgewählt ausgewählte ausgewählten ausländer
|
||||
ausländern ausländische ausländischen ausländischer auswählen autorität
|
||||
bände bäume bäumen beeinträchtigt behält beiträge beiträgen berät
|
||||
ausländischer auswählen autorität beeinträchtigt behält beiträge
|
||||
beiträgen berät beschränken beschränkt beschränkung beschädigt bestände
|
||||
bestätigen bestätigt bestätigte bestätigten bestätigung beträchtlich
|
||||
beträge beträgt bewährt bewährung bewältigen blätter blättern
|
||||
===ä===
|
||||
beschädigt beschränken beschränkt beschränkung bestände bestätigen
|
||||
bestätigt bestätigte bestätigten bestätigung beträchtlich beträge
|
||||
beträgt bewährt bewährung bewältigen blätter blättern buchstäblich
|
||||
bundesländer bundesländern bundespräsident bundespräsidenten dänemark
|
||||
buchstäblich bundesländer bundesländern bundespräsident bundespräsidenten
|
||||
bände bäume bäumen darmstädter demnächst drängen drängt dänemark
|
||||
dänische dänischen eigenständige eingeräumt eingeschränkt einschränkung
|
||||
einschränkungen einschätzung einsätze einträge einwände engländer
|
||||
===ä===
|
||||
dänische dänischen darmstädter demnächst drängen drängt eigenständige
|
||||
eingeräumt eingeschränkt einsätze einschätzung einschränkung
|
||||
einschränkungen einträge einwände engländer enthält entschädigung
|
||||
enttäuscht enttäuschung entwicklungsländer entwicklungsländern ergänzen
|
||||
enthält entschädigung enttäuscht enttäuschung entwicklungsländer
|
||||
entwicklungsländern ergänzen ergänzt ergänzte ergänzung erhält
|
||||
erhältlich erklären erklärt erklärte erklärten erklärung erklärungen
|
||||
erläutert erläuterte ernährung erträge erwähnt erzählen erzähler
|
||||
===ä===
|
||||
ergänzt ergänzte ergänzung erhält erhältlich erklären erklärt erklärte
|
||||
erklärten erklärung erklärungen erläutert erläuterte ernährung erträge
|
||||
erwähnt erzählen erzähler erzählt erzählte erzählung erzählungen
|
||||
europäer europäische europäischen europäischer gäbe gängigen gänzlich
|
||||
erzählt erzählte erzählung erzählungen europäer europäische europäischen
|
||||
europäischer gaststätte gebäude gebäuden gebäudes gedrängt gedächtnis
|
||||
gegenstände gegenwärtig gegenwärtige gegenwärtigen gehälter geklärt
|
||||
gelände gemälde generalsekretär geprägt geprägten gepäck gerät geräte
|
||||
===ä===
|
||||
gärten gäste gästen gaststätte geändert gebäude gebäuden gebäudes
|
||||
gedächtnis gedrängt gegenstände gegenwärtig gegenwärtige gegenwärtigen
|
||||
gehälter geklärt gelände gemälde generalsekretär gepäck geprägt
|
||||
geprägten gerät geräte geräten geräumt geschätzt geschätzten gespräch
|
||||
geräten geräumt geschätzt geschätzten gespräch gespräche gesprächen
|
||||
gesprächspartner geständnis gestärkt getränke gewählt gewählte gewählten
|
||||
gewähren gewährleisten gewährleistet gewährt gezählt geändert gläubiger
|
||||
grundsätze grundsätzlich grundsätzliche gäbe gängigen gänzlich gärten
|
||||
===ä===
|
||||
gespräche gesprächen gesprächspartner geständnis gestärkt getränke
|
||||
gewählt gewählte gewählten gewähren gewährleisten gewährleistet gewährt
|
||||
gezählt gläubiger grundsätze grundsätzlich grundsätzliche hält hände
|
||||
händen händler händlern hängen hängt härte härter hätte hätten
|
||||
===ä===
|
||||
hauptsächlich häuser häusern holländer humanitäre identität intensität
|
||||
kälte käme kämen kanäle kapazität kapazitäten kapitän käse
|
||||
gäste gästen hauptsächlich holländer humanitäre hält hände händen
|
||||
händler händlern hängen hängt härte härter hätte hätten häuser
|
||||
häusern identität intensität kanäle kapazität kapazitäten kapitän
|
||||
kindergärten kläger klären klärung kontinuität krankenhäuser
|
||||
krankenhäusern kriminalität lächeln lächelt lächerlich läden lädt lägen
|
||||
===ä===
|
||||
länder ländern ländlichen länge länger längere längerem längeren
|
||||
längerer längst lärm lässt legendären mächtig mächtige mächtigen
|
||||
mädchen mailänder mängel männer männern männliche männlichen märchen
|
||||
märkte märkten märz matthäus militär militärisch militärische
|
||||
krankenhäusern kriminalität kälte käme kämen käse legendären lächeln
|
||||
lächelt lächerlich läden lädt lägen länder ländern ländlichen länge
|
||||
länger längere längerem längeren längerer längst lärm lässt mailänder
|
||||
matthäus militär militärisch militärische militärischen militärs
|
||||
===ä===
|
||||
militärischen militärs ministerpräsident ministerpräsidenten
|
||||
mittelständische mittelständischen mobilität nächste nächsten nächster
|
||||
nächstes nächte nächtlichen nachträglich nähe näher nähere nähert
|
||||
nämlich niederländer niederländische niederländischen niedersächsische
|
||||
ministerpräsident ministerpräsidenten mittelständische mittelständischen
|
||||
mobilität mächtig mächtige mächtigen mädchen mängel männer männern
|
||||
männliche männlichen märchen märkte märkten märz nachträglich
|
||||
niederländer niederländische niederländischen niedersächsische
|
||||
===ä===
|
||||
niedersächsischen normalität osteuropäischen pädagogen palästinenser
|
||||
palästinensern palästinensische palästinensischen parkplätze phänomen
|
||||
plädiert plädierte pläne plänen plätze plätzen populär popularität
|
||||
porträt präsent präsentation präsentieren präsentiert präsentierte
|
||||
niedersächsischen normalität nächste nächsten nächster nächstes nächte
|
||||
nächtlichen nähe näher nähere nähert nämlich osteuropäischen
|
||||
palästinenser palästinensern palästinensische palästinensischen parkplätze
|
||||
phänomen plädiert plädierte pläne plänen plätze plätzen popularität
|
||||
===ä===
|
||||
präsentierten präsenz präsident präsidenten präsidentin präsidium
|
||||
präzise priorität räder rät rätsel räuber räume räumen räumt räumte
|
||||
realität regierungspräsidium regulären repräsentanten repräsentiert
|
||||
rumänien sächsischen sämtliche sänger sängerin sätze sätzen schäden
|
||||
populär porträt priorität präsent präsentation präsentieren präsentiert
|
||||
präsentierte präsentierten präsenz präsident präsidenten präsidentin
|
||||
präsidium präzise pädagogen realität regierungspräsidium regulären
|
||||
repräsentanten repräsentiert rumänien räder rät rätsel räuber räume
|
||||
===ä===
|
||||
schätzen schätzt schätzung schätzungen schätzungsweise schäuble schläge
|
||||
schlägt schwäche schwächen schwächer schwärmt selbständig
|
||||
selbständigkeit solidarität spät späten später spätere späteren
|
||||
spätestens spektakuläre spektakulären staatsanwälte staatspräsident
|
||||
räumen räumt räumte schläge schlägt schwäche schwächen schwächer
|
||||
schwärmt schäden schätzen schätzt schätzung schätzungen schätzungsweise
|
||||
schäuble selbständig selbständigkeit solidarität spektakuläre
|
||||
spektakulären spät späten später spätere späteren spätestens
|
||||
===ä===
|
||||
staatspräsidenten staatssekretär stabilität städte städten städtische
|
||||
städtischen stämme ständig ständige ständigen stärke stärken stärker
|
||||
stärkere stärkeren stärkste stärksten stärkung täglich tägliche
|
||||
täglichen tänzer täter tätern tätig tätigen tätigkeit tätigkeiten
|
||||
staatsanwälte staatspräsident staatspräsidenten staatssekretär stabilität
|
||||
städte städten städtische städtischen stämme ständig ständige ständigen
|
||||
stärke stärken stärker stärkere stärkeren stärkste stärksten stärkung
|
||||
sächsischen sämtliche sänger sängerin sätze sätzen tatsächlich
|
||||
===ä===
|
||||
tatsächlich tatsächliche tatsächlichen träger trägt tränen träume
|
||||
träumen träumt umsätze umstände umständen unabhängig unabhängige
|
||||
tatsächliche tatsächlichen träger trägt tränen träume träumen träumt
|
||||
täglich tägliche täglichen tänzer täter tätern tätig tätigen tätigkeit
|
||||
tätigkeiten umstände umständen umsätze unabhängig unabhängige
|
||||
unabhängigen unabhängigkeit ungeklärt unlängst unterhält uspräsident
|
||||
wächst wählen wähler wählern wählt wählte während währung währungen
|
||||
===ä===
|
||||
währungsunion wälder wände wänden wäre wären wärme werkstätten zählen
|
||||
zähler zählern zählt zählte zählten zähne zugänglich zulässig zunächst
|
||||
zusammenhänge zusätze zusätzlich zusätzliche zusätzlichen zusätzlicher
|
||||
zustände zuständig zuständige zuständigen zuständigkeit
|
||||
werkstätten wächst wählen wähler wählern wählt wählte während währung
|
||||
währungen währungsunion wälder wände wänden wäre wären wärme
|
||||
zugänglich zulässig zunächst zusammenhänge zustände zuständig zuständige
|
||||
zuständigen zuständigkeit zusätze zusätzlich zusätzliche zusätzlichen
|
||||
===ä===
|
||||
zusätzlicher zählen zähler zählern zählt zählte zählten zähne ähnlich
|
||||
ähnliche ähnlichen ähnlicher ähnliches älter ältere älteren älterer
|
||||
älteste ältesten ämter ändern ändert änderte änderung änderungen
|
||||
ängste ära ärger ärgert ärzte ärzten ästhetik
|
||||
===,===
|
||||
|
||||
===v===
|
||||
@ -945,68 +945,68 @@ services serviert sinnvoll sinnvolle souverän souveränität soviel
|
||||
===v===
|
||||
sozialversicherung stadtverordnetenversammlung stadtverwaltung stellvertretende
|
||||
stellvertretenden stellvertretender stellvertreter subventionen sv
|
||||
titelverteidiger tv universität universitäten unverändert unverständlich
|
||||
vage van variante varianten vater väter vaters vatikan vchr veba vehement
|
||||
titelverteidiger tv universität universitäten unverständlich unverändert
|
||||
vage van variante varianten vater vaters vatikan vchr veba vehement venedig
|
||||
===v===
|
||||
venedig verabschieden verabschiedet verabschiedete verabschiedung verändern
|
||||
verändert veränderte veränderten veränderung veränderungen verankert
|
||||
verabschieden verabschiedet verabschiedete verabschiedung verankert
|
||||
veranschlagt veranstalten veranstalter veranstaltet veranstaltung
|
||||
veranstaltungen verantworten verantwortlich verantwortlichen verantwortung
|
||||
verarbeiten verarbeitet verarbeitung verband verbandes verbergen verbessern
|
||||
===v===
|
||||
verarbeiten verarbeitet verarbeitung verärgert verband verbände verbänden
|
||||
verbandes verbergen verbessern verbessert verbesserte verbesserten verbesserung
|
||||
verbesserungen verbieten verbietet verbinden verbindet verbindung verbindungen
|
||||
verbirgt verbliebenen verborgen verbot verboten verbotenen verbracht verbrachte
|
||||
verbessert verbesserte verbesserten verbesserung verbesserungen verbieten
|
||||
verbietet verbinden verbindet verbindung verbindungen verbirgt verbliebenen
|
||||
verborgen verbot verboten verbotenen verbracht verbrachte verbrannt verbrauch
|
||||
verbraucher verbraucht verbrechen verbreiten verbreitet verbreitete
|
||||
===v===
|
||||
verbrannt verbrauch verbraucher verbraucht verbrechen verbreiten verbreitet
|
||||
verbreitete verbreiteten verbreitung verbringen verbuchen verbucht verbund
|
||||
verbunden verbundene verbundenen verdacht verdachts verdammt verdanken verdankt
|
||||
verdienen verdienst verdienste verdient verdiente verdoppeln verdoppelt
|
||||
verbreiteten verbreitung verbringen verbuchen verbucht verbund verbunden
|
||||
verbundene verbundenen verbände verbänden verdacht verdachts verdammt
|
||||
verdanken verdankt verdienen verdienst verdienste verdient verdiente verdoppeln
|
||||
verdoppelt verdrängt verein vereinbaren vereinbart vereinbarte vereinbarten
|
||||
===v===
|
||||
verdrängt verein vereinbaren vereinbart vereinbarte vereinbarten vereinbarung
|
||||
vereinbarungen vereine vereinen vereinigten vereinigung vereins vereint
|
||||
vereinten vergabe vergangen vergangene vergangenen vergangener vergangenheit
|
||||
vergeben vergebens vergeblich vergessen vergewaltigung vergleich vergleichbar
|
||||
vereinbarung vereinbarungen vereine vereinen vereinigten vereinigung vereins
|
||||
vereint vereinten vergabe vergangen vergangene vergangenen vergangener
|
||||
vergangenheit vergeben vergebens vergeblich vergessen vergewaltigung vergleich
|
||||
vergleichbar vergleichbaren vergleichen vergleichsweise verglichen verhalten
|
||||
===v===
|
||||
vergleichbaren vergleichen vergleichsweise verglichen verhält verhalten
|
||||
verhältnis verhältnisse verhältnissen verhandeln verhandelt verhandlung
|
||||
verhandlungen verhängt verheiratet verhindern verhindert verkehr
|
||||
verkehrsminister verlag verlage verlagert verlagerung verlangen verlängern
|
||||
===v===
|
||||
verlängert verlängerung verlangt verlangte verlangten verlassen verlautete
|
||||
verlegen verleger verlegt verlegung verleihen verleiht verletzt verletzte
|
||||
verletzten verletzung verletzungen verliebt verliehen verlieren verlierer
|
||||
verliert verlor verloren verlorenen verlust verluste verlusten vermag
|
||||
verhandeln verhandelt verhandlung verhandlungen verheiratet verhindern
|
||||
verhindert verhält verhältnis verhältnisse verhältnissen verhängt verkehr
|
||||
verkehrsminister verlag verlage verlagert verlagerung verlangen verlangt
|
||||
verlangte verlangten verlassen verlautete verlegen verleger verlegt verlegung
|
||||
===v===
|
||||
verleihen verleiht verletzt verletzte verletzten verletzung verletzungen
|
||||
verliebt verliehen verlieren verlierer verliert verlor verloren verlorenen
|
||||
verlust verluste verlusten verlängern verlängert verlängerung vermag
|
||||
vermarktung vermehrt vermeiden vermeintlich vermeintlichen vermieden vermieter
|
||||
===v===
|
||||
vermitteln vermittelt vermittler vermittlung vermuten vermutet vermutlich
|
||||
vermutung vernachlässigt vernehmen vernehmung vernichtet vernichtung
|
||||
verordnung verrat verrät verraten verringern verringert verringerung versagen
|
||||
verordnung verrat verraten verringern verringert verringerung verrät versagen
|
||||
versagt versammelt versammelten versammlung verschickt verschieben verschiebung
|
||||
===v===
|
||||
versagt versammelt versammelten versammlung versäumt verschickt verschieben
|
||||
verschiebung verschiedene verschiedenen verschiedener verschiedensten
|
||||
verschlechtert verschoben verschont verschwand verschwinden verschwindet
|
||||
verschwunden versehen versetzen versetzt versicherer versichern versichert
|
||||
verschiedene verschiedenen verschiedener verschiedensten verschlechtert
|
||||
verschoben verschont verschwand verschwinden verschwindet verschwunden versehen
|
||||
versetzen versetzt versicherer versichern versichert versicherte versicherten
|
||||
versicherung versicherungen version versionen versorgen versorgt versorgung
|
||||
===v===
|
||||
versicherte versicherten versicherung versicherungen version versionen
|
||||
versorgen versorgt versorgung verspätung versprach versprechen verspricht
|
||||
versprochen verstand verstanden verständigen verständigt verständigung
|
||||
verständlich verständnis verstärken verstärkt verstärkte verstärkten
|
||||
versprach versprechen verspricht versprochen verspätung verstand verstanden
|
||||
verstecken versteckt verstehe verstehen versteht verstorbenen verständigen
|
||||
verständigt verständigung verständlich verständnis verstärken verstärkt
|
||||
verstärkte verstärkten verstärkung versuch versuche versuchen versucht
|
||||
===v===
|
||||
verstärkung verstecken versteckt verstehe verstehen versteht verstorbenen
|
||||
versuch versuche versuchen versucht versuchte versuchten vertagt verteidigen
|
||||
verteidiger verteidigt verteidigte verteidigung verteidigungsminister
|
||||
verteidigungsministerium verteilen verteilt verteilung vertrag verträge
|
||||
versuchte versuchten versäumt vertagt verteidigen verteidiger verteidigt
|
||||
verteidigte verteidigung verteidigungsminister verteidigungsministerium
|
||||
verteilen verteilt verteilung vertrag vertrages vertrat vertrauen vertraut
|
||||
vertreiben vertreibung vertreten vertreter vertretern vertretung vertrieb
|
||||
===v===
|
||||
vertrages vertrat vertrauen vertraut vertreiben vertreibung vertreten vertreter
|
||||
vertretern vertretung vertrieb vertrieben vertritt verunsichert verursachen
|
||||
verursacht verurteilt verurteilte verurteilung verwalten verwaltet verwaltung
|
||||
verwaltungsgericht verwandeln verwandelt verwandt verwandten verwehrt
|
||||
vertrieben vertritt verträge verunsichert verursachen verursacht verurteilt
|
||||
verurteilte verurteilung verwalten verwaltet verwaltung verwaltungsgericht
|
||||
verwandeln verwandelt verwandt verwandten verwehrt verweigern verweigert
|
||||
verweisen verweist verwenden verwendet verwendeten verwendung verwertung
|
||||
===v===
|
||||
verweigern verweigert verweisen verweist verwenden verwendet verwendeten
|
||||
verwendung verwertung verwickelt verwies verwiesen verwirklichen verwirklicht
|
||||
verwirklichung verwirrung verwundert verzeichnen verzeichnet verzeichnete
|
||||
verzicht verzichten verzichtet verzichtete veto vgl via viag video videos viel
|
||||
verwickelt verwies verwiesen verwirklichen verwirklicht verwirklichung
|
||||
verwirrung verwundert verzeichnen verzeichnet verzeichnete verzicht verzichten
|
||||
verzichtet verzichtete verändern verändert veränderte veränderten
|
||||
veränderung veränderungen verärgert veto vgl via viag video videos viel
|
||||
===v===
|
||||
viele vielen vieler vieles vielleicht vielmehr vielzahl vier viermal vierte
|
||||
viertel vierten vierzehn vierzig vietnam viktor vilbel villa viren virtuelle
|
||||
@ -1018,22 +1018,22 @@ volumen vom von voneinander vor vorab vorabend voran vorangegangenen voraus
|
||||
vorausgesetzt voraussetzung voraussetzungen voraussichtlich vorbehalte
|
||||
vorbehalten vorbei vorbereiten vorbereitet vorbereitung vorbereitungen vorbild
|
||||
===v===
|
||||
vorbilder vordergrund vorerst vorgaben vorgang vorgänge vorgängen vorgänger
|
||||
vorgehen vorgehensweise vorgelegt vorgelegten vorgenommen vorgeschlagen
|
||||
vorgeschrieben vorgesehen vorgesehene vorgesehenen vorgestellt vorgetragen
|
||||
vorhaben vorhanden vorhandene vorhandenen vorhang vorher vorigen vorkommen
|
||||
vorbilder vordergrund vorerst vorgaben vorgang vorgehen vorgehensweise
|
||||
vorgelegt vorgelegten vorgenommen vorgeschlagen vorgeschrieben vorgesehen
|
||||
vorgesehene vorgesehenen vorgestellt vorgetragen vorgänge vorgängen
|
||||
vorgänger vorhaben vorhanden vorhandene vorhandenen vorhang vorher vorigen
|
||||
===v===
|
||||
vorlage vorlegen vorliebe vorliegen vorliegenden vorliegt vormittag vorn vorne
|
||||
vornehmen vornehmlich vornherein vorrang vorrangig vorschlag vorschläge
|
||||
vorschlägen vorsicht vorsichtig vorsieht vorsitz vorsitzende vorsitzenden
|
||||
vorsitzender vorsorglich vorsprung vorstand vorstandsmitglied vorstandssprecher
|
||||
vorkommen vorlage vorlegen vorliebe vorliegen vorliegenden vorliegt vormittag
|
||||
vorn vorne vornehmen vornehmlich vornherein vorrang vorrangig vorschlag
|
||||
vorschläge vorschlägen vorsicht vorsichtig vorsieht vorsitz vorsitzende
|
||||
vorsitzenden vorsitzender vorsorglich vorsprung vorstand vorstandsmitglied
|
||||
===v===
|
||||
vorstandsvorsitzende vorstandsvorsitzender vorstellbar vorstellen vorstellung
|
||||
vorstellungen vortag vorteil vorteile vortrag vorträge vorurteile vorweisen
|
||||
vorwiegend vorzeitig vorzubereiten vorzunehmen votum vulkan vw vwd wertvolle
|
||||
wiedervereinigung wieviel wovon zivile zivilen zivilisation zivilisten
|
||||
vorstandssprecher vorstandsvorsitzende vorstandsvorsitzender vorstellbar
|
||||
vorstellen vorstellung vorstellungen vortag vorteil vorteile vortrag vorträge
|
||||
vorurteile vorweisen vorwiegend vorzeitig vorzubereiten vorzunehmen votum
|
||||
vulkan vw vwd väter wertvolle wiedervereinigung wieviel wovon zivile zivilen
|
||||
===v===
|
||||
zuversicht zuversichtlich zuviel zuvor
|
||||
zivilisation zivilisten zuversicht zuversichtlich zuviel zuvor
|
||||
===f===
|
||||
abfahrt abfall abfälle abgelaufenen abgeschafft ablauf abschaffung adolf
|
||||
affäre afghanistan afp afrika afrikanischen afrikas aktiengesellschaft alfred
|
||||
@ -1051,8 +1051,8 @@ auflage auflagen aufmerksam aufmerksamkeit aufnahme aufnahmen aufnehmen
|
||||
aufrechterhalten aufregung aufruf aufrufen aufs aufschrift aufschwung aufsehen
|
||||
===f===
|
||||
aufsicht aufsichtsrat aufstand aufsteiger aufstellen aufstellung aufstieg
|
||||
auftakt auftauchen aufteilung auftrag aufträge aufträgen auftraggeber
|
||||
auftragseingang auftreten auftritt auftritte aufwand aufweisen aufwendungen
|
||||
auftakt auftauchen aufteilung auftrag auftraggeber auftragseingang auftreten
|
||||
auftritt auftritte aufträge aufträgen aufwand aufweisen aufwendungen
|
||||
aufzeichnungen aufzubauen aufzugeben aufzunehmen ausfall ausfallen ausflug
|
||||
===f===
|
||||
ausgefallen ausgeliefert auskunft auslieferung ausverkauft autofahrer bahnhof
|
||||
@ -1060,8 +1060,8 @@ basf bauwirtschaft beauftragt bedarf beeinflussen befand befanden befassen
|
||||
befehl befinden befindet befindlichen befragt befragten befragung befreien
|
||||
befreit befreiung befunden begreifen begriff begriffe begriffen beifall
|
||||
===f===
|
||||
beihilfe bekämpfen bekämpft bekämpfung bekräftigt bekräftigte belaufen
|
||||
beläuft belegschaft bereitschaft beruf berufe berufen berufliche beruflichen
|
||||
beihilfe bekräftigt bekräftigte bekämpfen bekämpft bekämpfung belaufen
|
||||
belegschaft beläuft bereitschaft beruf berufe berufen berufliche beruflichen
|
||||
beruft berufung beschäftigen beschäftigt beschäftigte beschäftigten
|
||||
beschäftigung bestenfalls bestraft betreffen betreffenden betrifft betroffen
|
||||
===f===
|
||||
@ -1070,154 +1070,154 @@ bischof botschaft botschaften botschafter brief briefe briefen
|
||||
bundesanwaltschaft bundesfinanzminister bundesgerichtshof
|
||||
bundesverfassungsgericht bundesverfassungsgerichts bundeswirtschaftsminister
|
||||
===f===
|
||||
cdufraktion chef chefredakteur chefs darauf daraufhin darf dauerhaft definieren
|
||||
definiert definierten definition defizit defizite detlef dfb dialogfenster
|
||||
differenz differenzen dorf drauf durfte durften ebenfalls effekt effekte
|
||||
effektiv effizienz ehefrau eigenschaft eigenschaften einfach einfache einfachen
|
||||
cafà cdufraktion chef chefredakteur chefs darauf daraufhin darf dauerhaft
|
||||
definieren definiert definierten definition defizit defizite detlef dfb
|
||||
dialogfenster differenz differenzen dorf drauf durfte durften ebenfalls effekt
|
||||
effekte effektiv effizienz ehefrau eigenschaft eigenschaften einfach einfache
|
||||
===f===
|
||||
einfacher einfallen einfluss eingestuft eingetroffen eingreifen eingriff
|
||||
eingriffe einkauf einzelfall elf elfriede empfahl empfang empfangen empfänger
|
||||
einfachen einfacher einfallen einfluss eingestuft eingetroffen eingreifen
|
||||
eingriff eingriffe einkauf einzelfall elf elfriede empfahl empfang empfangen
|
||||
empfehlen empfehlung empfehlungen empfiehlt empfinden empfindet empfohlen
|
||||
empfunden entfallen entfällt entfalten entfernen entfernt entfernten
|
||||
empfunden empfänger entfallen entfalten entfernen entfernt entfernten
|
||||
===f===
|
||||
entfernung entfielen entwicklungshilfe entworfen entwurf erfahren erfährt
|
||||
entfernung entfielen entfällt entwicklungshilfe entworfen entwurf erfahren
|
||||
erfahrung erfahrungen erfassen erfassung erfinder erfindung erfolg erfolge
|
||||
erfolgen erfolglos erfolgreich erfolgreiche erfolgreichen erfolgreicher
|
||||
erfolgreichsten erfolgt erfolgte erforderlich erforderliche erforderlichen
|
||||
===f===
|
||||
erfordert erforschung erfreulich erfreut erfuhr erfunden erfurt ergreifen
|
||||
ergriffen erhoffen erhofft ermittlungsverfahren ernsthaft ernsthafte
|
||||
erfordert erforschung erfreulich erfreut erfuhr erfunden erfurt erfährt
|
||||
ergreifen ergriffen erhoffen erhofft ermittlungsverfahren ernsthaft ernsthafte
|
||||
erwirtschaftet erzbischof europameisterschaft fabrik fabriken fach
|
||||
fachhochschule fachleute fachleuten fähig fähigkeit fähigkeiten fahne fahnen
|
||||
===f===
|
||||
fahrbahn fahren fahrer fahrgäste fahrrad fahrt fährt fahrten fahrzeug
|
||||
fahrzeuge fahrzeugen fakten faktor faktoren fall falle fälle fallen fällen
|
||||
fällig falls fällt falsch falsche falschen familie familien fand fanden
|
||||
fangen fängt fans farbe farben faschismus fassade fassen fassung fast
|
||||
fachhochschule fachleute fachleuten fahne fahnen fahrbahn fahren fahrer
|
||||
===f===
|
||||
fahrgäste fahrrad fahrt fahrten fahrzeug fahrzeuge fahrzeugen fakten faktor
|
||||
faktoren fall falle fallen falls falsch falsche falschen familie familien fand
|
||||
fanden fangen fans farbe farben faschismus fassade fassen fassung fast
|
||||
faszination fasziniert faust favorit favoriten fazit fc fdp februar fehle
|
||||
===f===
|
||||
fehlen fehlende fehlenden fehler fehlern fehlt fehlte fehlten feier feiern
|
||||
feiert feierte feierten fein feind feinde feine feinen feld felder feldern
|
||||
fenster fenstern ferien fern ferne fernen ferner fernsehen fernsehens fernseher
|
||||
===f===
|
||||
fernsehsender ferrari fertig fertiggestellt fertigstellung fertigung fest feste
|
||||
===f===
|
||||
festen fester festgehalten festgelegt festgelegten festgenommen festgeschrieben
|
||||
festgestellt festhalten festival festivals festlegen festlegung festnahme
|
||||
feststellen feststellung festzulegen festzustellen feuer feuerwehr fiel fielen
|
||||
===f===
|
||||
figur figuren filiale filialen film filme filmemacher filmen films finale
|
||||
===f===
|
||||
finanzamt finanzen finanziell finanzielle finanziellen finanzieller finanzieren
|
||||
finanziert finanzierung finanzminister finanzministerium finanzpolitik finde
|
||||
finden findet fing finger finnland firma firmen fisch fische fischer fiskus fit
|
||||
flagge flammen flasche flaschen flecken fleisch fliegen fliegt fliehen flog
|
||||
===f===
|
||||
fläche flächen flagge flammen flasche flaschen flecken fleisch fliegen fliegt
|
||||
fliehen flog florenz florida flucht flug fluggesellschaft fluggesellschaften
|
||||
flughafen flughäfen flughafens flugzeug flugzeuge flut focus folge folgen
|
||||
folgende folgenden folglich folgt folgte folgten folter fonds for ford fordern
|
||||
florenz florida flucht flug fluggesellschaft fluggesellschaften flughafen
|
||||
flughafens flughäfen flugzeug flugzeuge flut fläche flächen focus folge
|
||||
folgen folgende folgenden folglich folgt folgte folgten folter fonds for ford
|
||||
fordern fordert forderte forderten forderung forderungen form formal format
|
||||
===f===
|
||||
fordert forderte forderten forderung forderungen form formal format formel
|
||||
formen formular formulieren formuliert formulierte formulierung forscher
|
||||
formel formen formular formulieren formuliert formulierte formulierung forscher
|
||||
forschung fort fortan fortgeschrieben fortgesetzt fortschritt fortschritte
|
||||
fortsetzen fortsetzung forum foto fotografen fotos fr frage fragen fraglich
|
||||
===f===
|
||||
fragt fragte fraktion fraktionen fraktionschef fraktionsvorsitzende franc
|
||||
===f===
|
||||
francisco frank franken frankfurt frankfurter frankfurtmain frankreich
|
||||
frankreichs franz franzose franzosen frau frauen frei freiburg freiburger freie
|
||||
freien freier freigabe freigegeben freigelassen freiheit freiheitsstrafe
|
||||
===f===
|
||||
freilassung freilich freispruch freistaat freitag freitags freiwillig
|
||||
===f===
|
||||
freiwillige freiwilligen freizeit fremd fremde fremden freude freuen freund
|
||||
freunde freunden freundin freundlich freundliche freundlichen freundschaft
|
||||
freut freute friedberg frieden friedens friedhof friedlich friedliche
|
||||
===f===
|
||||
friedlichen friedrich frisch frische frischen frist fritz froh front fronten
|
||||
===f===
|
||||
frust fuchs fuhr fuhren fulda fund fundament fundamentalisten funk funktion
|
||||
funktionäre funktionen funktionieren funktioniert funktionsbaustein furcht
|
||||
fusion gefahr gefährden gefährdet gefährdung gefahren gefährlich
|
||||
funktionen funktionieren funktioniert funktionsbaustein funktionäre furcht
|
||||
fusion fähig fähigkeit fähigkeiten fährt fälle fällen fällig fällt
|
||||
fängt gefahr gefahren gefallen gefangen gefangene gefangenen gefeiert
|
||||
===f===
|
||||
gefährliche gefährlichen gefährlicher gefallen gefällt gefangen gefangene
|
||||
gefangenen gefängnis gefeiert gefertigt geflogen geflohen gefolgt gefordert
|
||||
geforderte geforderten gefragt gefunden gegebenenfalls gegriffen geholfen
|
||||
gekämpft gekauft gelaufen geldstrafe geliefert gemeinschaft genf genfer
|
||||
gefertigt geflogen geflohen gefolgt gefordert geforderte geforderten gefragt
|
||||
gefunden gefährden gefährdet gefährdung gefährlich gefährliche
|
||||
gefährlichen gefährlicher gefällt gefängnis gegebenenfalls gegriffen
|
||||
geholfen gekauft gekämpft gelaufen geldstrafe geliefert gemeinschaft genf
|
||||
===f===
|
||||
gepflegt gerechtfertigt gerichtshof gerufen geschaffen geschafft geschäft
|
||||
geschäfte geschäften geschäftsbereich geschäftsleute geschäftsmann
|
||||
geschäftstätigkeit geschrumpft gesellschaft gesellschaften gesellschafter
|
||||
genfer gepflegt gerechtfertigt gerichtshof gerufen geschaffen geschafft
|
||||
geschrumpft geschäft geschäfte geschäften geschäftsbereich geschäftsleute
|
||||
geschäftsmann geschäftstätigkeit gesellschaft gesellschaften gesellschafter
|
||||
gesellschaftliche gesellschaftlichen gesetzentwurf gesundheitsreform getroffen
|
||||
===f===
|
||||
gewerkschaft gewerkschaften gewerkschafter geworfen ggf gift gipfel gleichfalls
|
||||
golf graf grafik greifen greift griff griffen hafen hafenstadt haft haftbefehl
|
||||
häftlinge haftstrafe halbfinale half hälfte haufen häufig häufiger
|
||||
häufigsten hauptbahnhof heft heftig heftige heftigen heftiger helfen helfer
|
||||
haftstrafe halbfinale half haufen hauptbahnhof heft heftig heftige heftigen
|
||||
heftiger helfen helfer herausforderung herausforderungen herausgefunden
|
||||
===f===
|
||||
herausforderung herausforderungen herausgefunden herkunft herrschaft hilfe
|
||||
hilfen hilflos hilfreich hilft hinauf hof hoffe hoffen hoffentlich hoffmann
|
||||
hoffnung hoffnungen hofft identifizieren identifiziert inflation inflationsrate
|
||||
infolge information informationen informieren informiert infos infrastruktur
|
||||
herkunft herrschaft hilfe hilfen hilflos hilfreich hilft hinauf hof hoffe
|
||||
hoffen hoffentlich hoffmann hoffnung hoffnungen hofft häftlinge hälfte
|
||||
häufig häufiger häufigsten identifizieren identifiziert inflation
|
||||
inflationsrate infolge information informationen informieren informiert infos
|
||||
===f===
|
||||
insofern iwf kaffee kalifornien kampf kämpfe kämpfen kämpfer kämpft
|
||||
kämpfte kartoffeln kauf kaufen käufer kaufhaus kaufmann kaufpreis kauft
|
||||
kaufte keinesfalls koffer konferenz konflikt konflikte konflikts konfrontation
|
||||
konfrontiert kopf kraft kräfte kräften kräftig kräftige kräftigen
|
||||
infrastruktur insofern iwf kaffee kalifornien kampf kartoffeln kauf kaufen
|
||||
kaufhaus kaufmann kaufpreis kauft kaufte keinesfalls koffer konferenz konflikt
|
||||
konflikte konflikts konfrontation konfrontiert kopf kraft kräfte kräften
|
||||
kräftig kräftige kräftigen kundschaft kunststoff kurzfristig kämpfe
|
||||
===f===
|
||||
kundschaft kunststoff kurzfristig lafontaine landschaft landschaften
|
||||
kämpfen kämpfer kämpft kämpfte käufer lafontaine landschaft landschaften
|
||||
landwirtschaft landwirtschaftlichen langfristig langfristige langfristigen lauf
|
||||
laufbahn laufe laufen laufende laufenden läuft laufzeit leidenschaft
|
||||
laufbahn laufe laufen laufende laufenden laufzeit leidenschaft
|
||||
leistungsfähigkeit lief liefen lieferanten liefern liefert lieferte lieferten
|
||||
===f===
|
||||
lieferung lieferungen lohnfortzahlung luft lufthansa luftwaffe mafia manfred
|
||||
mannschaft mannschaften marktwirtschaft mehrfach meisterschaft meisterschaften
|
||||
microsoft mitgliedschaft mittelfeld mittelfeldspieler mittelfristig mustafa
|
||||
nachbarschaft nachfolge nachfolgenden nachfolger nachfrage nationalmannschaft
|
||||
lieferung lieferungen lohnfortzahlung luft lufthansa luftwaffe läuft mafia
|
||||
manfred mannschaft mannschaften marktwirtschaft mehrfach meisterschaft
|
||||
meisterschaften microsoft mitgliedschaft mittelfeld mittelfeldspieler
|
||||
mittelfristig mustafa nachbarschaft nachfolge nachfolgenden nachfolger
|
||||
===f===
|
||||
nordrheinwestfalen notfalls oberfläche of offen offenbach offenbacher offenbar
|
||||
offenbart offene offenen offener offenheit offenkundig offensichtlich offensive
|
||||
offiziell offizielle offiziellen offizier offiziere oft oftmals opfer opfern
|
||||
parteichef partnerschaft perfekt performance pfarrer pfennig pferd pferde
|
||||
nachfrage nationalmannschaft nordrheinwestfalen notfalls oberfläche of offen
|
||||
offenbach offenbacher offenbar offenbart offene offenen offener offenheit
|
||||
offenkundig offensichtlich offensive offiziell offizielle offiziellen offizier
|
||||
offiziere oft oftmals opfer opfern parteichef partnerschaft perfekt performance
|
||||
===f===
|
||||
pflanze pflanzen pflege pflegen pflegeversicherung pflegt pflicht pflichten
|
||||
pfund plattform pressekonferenz prof professionelle professionellen professor
|
||||
professoren profi profil profis profit profitieren profitiert profitierten
|
||||
radfahrer ralf raumfahrt rechtfertigen referendum referent reform reformen
|
||||
pfarrer pfennig pferd pferde pflanze pflanzen pflege pflegen pflegeversicherung
|
||||
pflegt pflicht pflichten pfund plattform pressekonferenz prof professionelle
|
||||
professionellen professor professoren profi profil profis profit profitieren
|
||||
profitiert profitierten radfahrer ralf raumfahrt rechtfertigen referendum
|
||||
===f===
|
||||
regierungschef regierungschefs reifen reihenfolge rheinlandpfalz rief riefen
|
||||
rindfleisch rolf rudolf ruf rufen rufnummer ruft rundfunk sanft sauerstoff
|
||||
schafe schäfer schaffen schafft schaffte schaffung scharf scharfe scharfen
|
||||
schiff schiffe schimpft schlaf schlafen schrift schriften schriftlich
|
||||
referent reform reformen regierungschef regierungschefs reifen reihenfolge
|
||||
rheinlandpfalz rief riefen rindfleisch rolf rudolf ruf rufen rufnummer ruft
|
||||
rundfunk sanft sauerstoff schafe schaffen schafft schaffte schaffung scharf
|
||||
scharfe scharfen schiff schiffe schimpft schlaf schlafen schrift schriften
|
||||
===f===
|
||||
schriftsteller schuf schwangerschaft seehofer sicherheitskräfte siegfried
|
||||
sindelfingen sofern sofort sofortige software sorgfältig sozialhilfe spdchef
|
||||
spdfraktion spdfraktionschef sprengstoff staatsanwaltschaft staatschef
|
||||
stattfinden stattfindet stattgefunden stefan steffi steuerreform stiftung stoff
|
||||
schriftlich schriftsteller schuf schwangerschaft schäfer seehofer
|
||||
sicherheitskräfte siegfried sindelfingen sofern sofort sofortige software
|
||||
sorgfältig sozialhilfe spdchef spdfraktion spdfraktionschef sprengstoff
|
||||
staatsanwaltschaft staatschef stattfinden stattfindet stattgefunden stefan
|
||||
===f===
|
||||
stoffe strafe strafen strafkammer straftaten streifen streitkräfte stufe
|
||||
stufen tarife tarifverhandlungen tarifvertrag telefon telefonisch telefonnummer
|
||||
teufel tief tiefe tiefen tiefer tochtergesellschaft todesstrafe traf trafen
|
||||
treff treffen treffer treffpunkt trifft ufer umfang umfangreiche umfangreichen
|
||||
steffi steuerreform stiftung stoff stoffe strafe strafen strafkammer straftaten
|
||||
streifen streitkräfte stufe stufen tarife tarifverhandlungen tarifvertrag
|
||||
telefon telefonisch telefonnummer teufel tief tiefe tiefen tiefer
|
||||
tochtergesellschaft todesstrafe traf trafen treff treffen treffer treffpunkt
|
||||
===f===
|
||||
umfassen umfassende umfassenden umfasst umfeld umfrage umfragen umlaufrendite
|
||||
unfall unfälle ungefähr uniform unterkunft unterschrift unterschriften
|
||||
untersuchungshaft unzufrieden verfahren verfahrens verfall verfallen verfasser
|
||||
verfassung verfassungsgericht verfassungsschutz verfehlt verfolgen verfolgt
|
||||
trifft ufer umfang umfangreiche umfangreichen umfassen umfassende umfassenden
|
||||
umfasst umfeld umfrage umfragen umlaufrendite unfall unfälle ungefähr uniform
|
||||
unterkunft unterschrift unterschriften untersuchungshaft unzufrieden verfahren
|
||||
verfahrens verfall verfallen verfasser verfassung verfassungsgericht
|
||||
===f===
|
||||
verfolgte verfolgung verhaftet verhaftung verhelfen verkauf verkaufen
|
||||
verkäufer verkauft verkaufte verkauften verkraften verlauf verlaufen verläuft
|
||||
verlief vernunft verpflichten verpflichtet verpflichtung verpflichtungen
|
||||
verschaffen verschafft verschärft verschärfung verzweifelt verzweiflung vfb
|
||||
verfassungsschutz verfehlt verfolgen verfolgt verfolgte verfolgung verhaftet
|
||||
verhaftung verhelfen verkauf verkaufen verkauft verkaufte verkauften verkraften
|
||||
verkäufer verlauf verlaufen verlief verläuft vernunft verpflichten
|
||||
verpflichtet verpflichtung verpflichtungen verschaffen verschafft verschärft
|
||||
===f===
|
||||
vielfach vielfalt vielfältigen viertelfinale volkswirtschaft vorfahren vorfall
|
||||
vorfeld vorgeworfen vorläufig vorläufige vorläufigen vorschrift vorschriften
|
||||
vorstandschef vorwurf waffe waffen waffenstillstand wahlkampf warf warfen
|
||||
wegfall weltmeisterschaft werfen wettbewerbsfähigkeit wettkampf wiederaufbau
|
||||
verschärfung verzweifelt verzweiflung vfb vielfach vielfalt vielfältigen
|
||||
viertelfinale volkswirtschaft vorfahren vorfall vorfeld vorgeworfen vorläufig
|
||||
vorläufige vorläufigen vorschrift vorschriften vorstandschef vorwurf waffe
|
||||
waffen waffenstillstand wahlkampf warf warfen wegfall weltmeisterschaft werfen
|
||||
===f===
|
||||
wiederaufnahme wilfried wirft wirtschaft wirtschaftlich wirtschaftliche
|
||||
wirtschaftlichen wirtschaftlicher wirtschaftsminister wirtschaftsministerium
|
||||
wirtschaftspolitik wirtschaftswachstum wissenschaft wissenschaftler
|
||||
wissenschaftlern wissenschaftlich wissenschaftliche wissenschaftlichen
|
||||
wettbewerbsfähigkeit wettkampf wiederaufbau wiederaufnahme wilfried wirft
|
||||
wirtschaft wirtschaftlich wirtschaftliche wirtschaftlichen wirtschaftlicher
|
||||
wirtschaftsminister wirtschaftsministerium wirtschaftspolitik
|
||||
wirtschaftswachstum wissenschaft wissenschaftler wissenschaftlern
|
||||
===f===
|
||||
wissenschaftlicher wolf wolfgang wolfsburg worauf zdf zeitschrift zeitschriften
|
||||
zufall zufällig zufolge zufrieden zugriff zukunft zutiefst zwangsläufig
|
||||
zweifel zweifellos
|
||||
wissenschaftlich wissenschaftliche wissenschaftlichen wissenschaftlicher wolf
|
||||
wolfgang wolfsburg worauf zdf zeitschrift zeitschriften zufall zufolge
|
||||
zufrieden zufällig zugriff zukunft zutiefst zwangsläufig zweifel zweifellos
|
||||
===ö===
|
||||
abgelöst ablösung angehören angehörige angehörigen angehört anhörung
|
||||
aufgelöst aufhören auflösung ausgelöst auslösen auslöser befördert
|
||||
@ -1225,42 +1225,43 @@ behörde behörden benötigen benötigt benötigte benötigten bevölkerung
|
||||
bewölkt bischöfe böblingen böden börse börsen börsengang börsianer
|
||||
===ö===
|
||||
böse bösen dörfer dörfern empört empörung erhöhen erhöht erhöhte
|
||||
erhöhten erhöhung erlös erlöse ermöglichen ermöglicht eröffnen eröffnet
|
||||
eröffnete eröffnung erörtert erschöpft föderation fördern fördert
|
||||
förderung französische französischen französischer fröhlich gefördert
|
||||
erhöhten erhöhung erlös erlöse ermöglichen ermöglicht erschöpft
|
||||
eröffnen eröffnet eröffnete eröffnung erörtert französische
|
||||
französischen französischer fröhlich föderation fördern fördert
|
||||
===ö===
|
||||
gehör gehöre gehören gehörende gehörenden gehört gehörte gehörten
|
||||
gelöscht gelöst geöffnet gestört getötet gewöhnlich gewöhnlichen
|
||||
gewöhnt göppingen götter göttingen herkömmlichen höchst höchste
|
||||
höchsten höchstens höchster höhe höhen höhepunkt höher höhere höheren
|
||||
förderung gefördert gehör gehöre gehören gehörende gehörenden gehört
|
||||
gehörte gehörten gelöscht gelöst gestört getötet gewöhnlich
|
||||
gewöhnlichen gewöhnt geöffnet göppingen götter göttingen herkömmlichen
|
||||
höchst höchste höchsten höchstens höchster höhe höhen höhepunkt höher
|
||||
===ö===
|
||||
höherer hölle hören hörer hört hörte kapitalerhöhung köln kölner
|
||||
komödie könig königin königreich königs könne können könnte könnten
|
||||
köpfe köpfen körper körperlich körperliche körperlichen körpers
|
||||
körperverletzung löcher löhne löschen lösen löst löste lösung lösungen
|
||||
höhere höheren höherer hölle hören hörer hört hörte kapitalerhöhung
|
||||
komödie köln kölner könig königin königreich königs könne können
|
||||
könnte könnten köpfe köpfen körper körperlich körperliche körperlichen
|
||||
körpers körperverletzung löcher löhne löschen lösen löst löste lösung
|
||||
===ö===
|
||||
löwen millionenhöhe möbel möchte möchten möge mögen möglich mögliche
|
||||
möglichen möglicher möglicherweise möglichkeit möglichkeiten möglichst
|
||||
möller mönchengladbach mörder nervös nördlich nördlichen nötig nötige
|
||||
nötigen öffentlich öffentliche öffentlichen öffentlicher öffentlichkeit
|
||||
lösungen löwen millionenhöhe möbel möchte möchten möge mögen möglich
|
||||
mögliche möglichen möglicher möglicherweise möglichkeit möglichkeiten
|
||||
möglichst möller mönchengladbach mörder nervös nördlich nördlichen
|
||||
nötig nötige nötigen persönlich persönliche persönlichen persönlicher
|
||||
===ö===
|
||||
persönlichkeit persönlichkeiten plötzlich religiöse religiösen römer
|
||||
römische römischen schröder schröders schön schöne schönen schöner
|
||||
schönes schönheit schönste schönsten stören stört störung störungen
|
||||
söhne tragödie töchter tödlich tödlichen töne töpfer töten tötung
|
||||
===ö===
|
||||
ungewöhnlich ungewöhnliche ungewöhnlichen unmöglich unnötig verkörpert
|
||||
vermögen versöhnung verzögert verzögerung veröffentlichen veröffentlicht
|
||||
veröffentlichte veröffentlichten veröffentlichung vögel völker völlig
|
||||
womöglich wöchentlich wörter wörtlich zeitgenössischen zerstören
|
||||
===ö===
|
||||
zerstört zerstörte zerstörten zerstörung zugehörigen zuhörer zwölf
|
||||
öffentlich öffentliche öffentlichen öffentlicher öffentlichkeit
|
||||
öffentlichkeitsarbeit öffentlichrechtlichen öffnen öffnet öffnete öffnung
|
||||
öffnungszeiten öfter ökologie ökologisch ökologische ökologischen
|
||||
===ö===
|
||||
ökonomie ökonomische ökonomischen öl örtliche örtlichen österreich
|
||||
österreicher österreichische österreichischen österreichs östlich
|
||||
===ö===
|
||||
östlichen ötv persönlich persönliche persönlichen persönlicher
|
||||
persönlichkeit persönlichkeiten plötzlich religiöse religiösen römer
|
||||
römische römischen schön schöne schönen schöner schönes schönheit
|
||||
schönste schönsten schröder schröders söhne stören stört störung
|
||||
===ö===
|
||||
störungen töchter tödlich tödlichen töne töpfer töten tötung tragödie
|
||||
ungewöhnlich ungewöhnliche ungewöhnlichen unmöglich unnötig verkörpert
|
||||
vermögen veröffentlichen veröffentlicht veröffentlichte veröffentlichten
|
||||
veröffentlichung versöhnung verzögert verzögerung vögel völker völlig
|
||||
===ö===
|
||||
wöchentlich womöglich wörter wörtlich zeitgenössischen zerstören
|
||||
zerstört zerstörte zerstörten zerstörung zugehörigen zuhörer zwölf
|
||||
östlichen ötv
|
||||
===.===
|
||||
|
||||
===x===
|
||||
@ -1287,33 +1288,33 @@ begründet begründete begründeten begründung bemühen bemüht bemühte
|
||||
bemühungen berücksichtigen berücksichtigt berücksichtigung berühmt
|
||||
===ü===
|
||||
berühmte berühmten berührt beschlüsse bezüge bezüglich blüm blüten
|
||||
broschüre brücke brücken brüder brüssel brüsseler bücher büchern bühne
|
||||
bühnen bundesbürger bündnis bündnisgrünen bürger bürgerhaus
|
||||
broschüre brücke brücken brüder brüssel brüsseler bundesbürger bücher
|
||||
büchern bühne bühnen bündnis bündnisgrünen bürger bürgerhaus
|
||||
bürgerinitiative bürgerkrieg bürgerliche bürgerlichen bürgermeister
|
||||
===ü===
|
||||
bürgermeisterin bürgermeisters bürgern bürgerschaft büro bürokratie
|
||||
büros dafür darüber drüben drücken drückt drückte dünn durchführen
|
||||
durchführung durchgeführt durchzuführen dürfe dürfen dürfte dürften
|
||||
düsseldorf düsseldorfer eigentümer einflüsse einführen einführung
|
||||
büros dafür darüber drüben drücken drückt drückte durchführen
|
||||
durchführung durchgeführt durchzuführen dünn dürfe dürfen dürfte
|
||||
dürften düsseldorf düsseldorfer eigentümer einflüsse einführen
|
||||
===ü===
|
||||
einführungsleitfaden eingeführt einzuführen endgültig endgültige
|
||||
endgültigen entführt entführung entwürfe erfüllen erfüllt erfüllung
|
||||
erschüttert flüchtete flüchtlinge flüchtlingen flüge flügel flüsse
|
||||
früchte früh frühe frühen früher frühere früheren früherer frühestens
|
||||
einführung einführungsleitfaden eingeführt einzuführen endgültig
|
||||
endgültige endgültigen entführt entführung entwürfe erfüllen erfüllt
|
||||
erfüllung erschüttert flüchtete flüchtlinge flüchtlingen flüge flügel
|
||||
flüsse früchte früh frühe frühen früher frühere früheren früherer
|
||||
===ü===
|
||||
frühling frühstück frühzeitig fügt fügte fühle fühlen fühlt fühlte
|
||||
fühlten führe führen führende führenden führender führer führerschein
|
||||
führt führte führten führung führungskräfte fülle füllen füllt fünf
|
||||
fünfte fünftel fünften fünfzehn fünfzig fünfziger für fürchten
|
||||
frühestens frühling frühstück frühzeitig fügt fügte fühle fühlen
|
||||
fühlt fühlte fühlten führe führen führende führenden führender führer
|
||||
führerschein führt führte führten führung führungskräfte fülle füllen
|
||||
füllt fünf fünfte fünftel fünften fünfzehn fünfzig fünfziger für
|
||||
===ü===
|
||||
fürchtet fürs gebühr gebühren gebürtige gedrückt gefühl gefühle
|
||||
gefühlen geführt geführte geführten gefüllt gegenüber gegründet
|
||||
fürchten fürchtet fürs gebühr gebühren gebürtige gedrückt gefühl
|
||||
gefühle gefühlen geführt geführte geführten gefüllt gegenüber gegründet
|
||||
gegründete gegründeten gekündigt gekürzt gemüse genügen genügend genügt
|
||||
geprüft geringfügig gerüchte gerückt geschäftsführer geschäftsführung
|
||||
===ü===
|
||||
geschützt gestürzt gestützt geübt gewünscht gewünschte gewünschten
|
||||
gewürdigt glaubwürdigkeit glück glücklich grün gründe gründen gründer
|
||||
gründete gründlich grundstück grundstücke gründung grüne grünen grünes
|
||||
geschützt gestürzt gestützt gewünscht gewünschte gewünschten gewürdigt
|
||||
geübt glaubwürdigkeit glück glücklich grundstück grundstücke grün
|
||||
gründe gründen gründer gründete gründlich gründung grüne grünen grünes
|
||||
gültig gültige gültigen gültigkeit günstig günstige günstigen günstiger
|
||||
===ü===
|
||||
günter günther güter haustür hierfür hintergründe hügel hürde hürden
|
||||
@ -1338,108 +1339,108 @@ stürmer stürzen stürzt stürzte stützen stützt süd südafrika südafrikas
|
||||
===ü===
|
||||
südamerika süddeutschen süden südkorea südlich südlichen südostasien
|
||||
südosten südwesten tagsüber thüringen thüringer torhüter tribüne
|
||||
tübingen tübinger tür türen türkei türken türkische türkischen üben
|
||||
über überall überaus überblick überdies überdurchschnittlich überein
|
||||
tübingen tübinger tür türen türkei türken türkische türkischen
|
||||
umweltschützer unglück unterdrückung unterstützen unterstützt
|
||||
===ü===
|
||||
übereinstimmung überfall überfallen überflüssig überfordert übergabe
|
||||
übergang übergeben überhaupt überholt überlassen überleben überlebenden
|
||||
überlebt überlegen überlegt überlegungen übermittelt übernahm übernahme
|
||||
übernehmen übernimmt übernommen überprüfen überprüft überprüfung
|
||||
unterstützte unterstützung unverzüglich uraufführung ursprünglich
|
||||
ursprüngliche ursprünglichen verbündeten verfügbar verfügbaren verfügen
|
||||
verfügt verfügte verfügung vergnügen verknüpft verknüpfung verkünden
|
||||
verkündet verkündete verkürzt vernünftig vernünftige verrückt verübt
|
||||
===ü===
|
||||
überraschend überraschende überraschenden überrascht überraschung
|
||||
überraschungen übers überschreiten überschrift überschritten übersehen
|
||||
übersetzt übersetzung übersicht überstanden überstunden übertragen
|
||||
übertragung übertrieben übertroffen überwachen überwacht überwachung
|
||||
===ü===
|
||||
überwiegend überwiesen überwinden überwindung überwunden überzeugen
|
||||
überzeugend überzeugt überzeugung überzogen üblich übliche üblichen
|
||||
übrig übrigen übrigens übt übte übung umweltschützer unglück
|
||||
unterdrückung unterstützen unterstützt unterstützte unterstützung
|
||||
===ü===
|
||||
unverzüglich uraufführung ursprünglich ursprüngliche ursprünglichen
|
||||
verbündeten verfügbar verfügbaren verfügen verfügt verfügte verfügung
|
||||
vergnügen verknüpft verknüpfung verkünden verkündet verkündete verkürzt
|
||||
vernünftig vernünftige verrückt verübt vorgeführt vorübergehend vorwürfe
|
||||
===ü===
|
||||
vorwürfen vorzüge widersprüche wofür wünsche wünschen wünscht würde
|
||||
würden würzburg wüste züge zügen zügig zukünftig zukünftige
|
||||
zukünftigen zürich zurück zurückgegangen zurückgehen zurückgekehrt
|
||||
vorgeführt vorwürfe vorwürfen vorzüge vorübergehend widersprüche wofür
|
||||
wünsche wünschen wünscht würde würden würzburg wüste zukünftig
|
||||
zukünftige zukünftigen zurück zurückgegangen zurückgehen zurückgekehrt
|
||||
zurückgenommen zurückgetreten zurückgewiesen zurückgezogen zurückgreifen
|
||||
===ü===
|
||||
zurückhaltend zurückhaltung zurückkehren zurückliegenden zurückziehen
|
||||
zurückzuführen zurückzukehren zuschüsse
|
||||
zurückzuführen zurückzukehren zuschüsse züge zügen zügig zürich üben
|
||||
über überall überaus überblick überdies überdurchschnittlich überein
|
||||
übereinstimmung überfall überfallen überflüssig überfordert übergabe
|
||||
===ü===
|
||||
übergang übergeben überhaupt überholt überlassen überleben überlebenden
|
||||
überlebt überlegen überlegt überlegungen übermittelt übernahm übernahme
|
||||
übernehmen übernimmt übernommen überprüfen überprüft überprüfung
|
||||
überraschend überraschende überraschenden überrascht überraschung
|
||||
===ü===
|
||||
überraschungen übers überschreiten überschrift überschritten übersehen
|
||||
übersetzt übersetzung übersicht überstanden überstunden übertragen
|
||||
übertragung übertrieben übertroffen überwachen überwacht überwachung
|
||||
überwiegend überwiesen überwinden überwindung überwunden überzeugen
|
||||
===ü===
|
||||
überzeugend überzeugt überzeugung überzogen üblich übliche üblichen
|
||||
übrig übrigen übrigens übt übte übung
|
||||
===j===
|
||||
anja derjenigen diejenigen diesjährigen frühjahr gesamtjahr geschäftsjahr
|
||||
geschäftsjahres halbjahr ja jacques jagd jäger jahr jahre jahrelang jahren
|
||||
jahres jahresbeginn jahresende jahrestag jahresumsatz jahreswechsel jahreszeit
|
||||
geschäftsjahres halbjahr ja jacques jagd jahr jahre jahrelang jahren jahres
|
||||
jahresbeginn jahresende jahrestag jahresumsatz jahreswechsel jahreszeit
|
||||
jahrgang jahrhundert jahrhunderte jahrhunderten jahrhunderts jahrhundertwende
|
||||
===j===
|
||||
jährige jährlich jährliche jährlichen jahrtausend jahrtausendwende
|
||||
jahrzehnt jahrzehnte jahrzehntelang jahrzehnten jakob james jan januar japan
|
||||
japaner japanische japanischen japans jazz je jean jeans jede jedem jeden
|
||||
jedenfalls jeder jedermann jederzeit jedes jedesmal jedoch jegliche jeglicher
|
||||
jahrtausend jahrtausendwende jahrzehnt jahrzehnte jahrzehntelang jahrzehnten
|
||||
jakob james jan januar japan japaner japanische japanischen japans jazz je jean
|
||||
jeans jede jedem jeden jedenfalls jeder jedermann jederzeit jedes jedesmal
|
||||
jedoch jegliche jeglicher jeher jelzin jelzins jemals jemand jemanden jena jene
|
||||
===j===
|
||||
jeher jelzin jelzins jemals jemand jemanden jena jene jenem jenen jener jenes
|
||||
jens jenseits jerusalem jesus jetzige jetzigen jetzt jeweilige jeweiligen
|
||||
jeweils joachim job jobs jochen johann johanna johannes john johnson jordan
|
||||
jordanien jörg joschka josef joseph journalist journalisten jubel jubiläum
|
||||
jenem jenen jener jenes jens jenseits jerusalem jesus jetzige jetzigen jetzt
|
||||
jeweilige jeweiligen jeweils joachim job jobs jochen johann johanna johannes
|
||||
john johnson jordan jordanien joschka josef joseph journalist journalisten
|
||||
jubel jubiläum jude juden jugend jugendarbeit jugendliche jugendlichen
|
||||
===j===
|
||||
jude juden jüdische jüdischen jüdischer jugend jugendarbeit jugendliche
|
||||
jugendlichen jugendlicher jugoslawien jugoslawischen juli julia jung junge
|
||||
jungen junger jünger jüngere jüngeren jungs jüngst jüngste jüngsten
|
||||
jüngster juni jürgen jurist juristen juristisch juristische juristischen just
|
||||
jugendlicher jugoslawien jugoslawischen juli julia jung junge jungen junger
|
||||
jungs juni jurist juristen juristisch juristische juristischen just justiz
|
||||
justizminister jutta jäger jährige jährlich jährliche jährlichen jörg
|
||||
jüdische jüdischen jüdischer jünger jüngere jüngeren jüngst jüngste
|
||||
===j===
|
||||
justiz justizminister jutta konjunktur langjährige langjährigen lebensjahr
|
||||
jüngsten jüngster jürgen konjunktur langjährige langjährigen lebensjahr
|
||||
major netanjahu objekt objekte objekten projekt projekte projekten projekts
|
||||
sarajevo sarajewo sowjetische sowjetischen sowjetunion vorjahr vorjahres
|
||||
vorjahreszeitraum westjordanland
|
||||
===ß===
|
||||
abriß abschließen abschluß angepaßt anlaß anläßlich anschließen
|
||||
anschließend anschließenden anschluß anstoß ausmaß ausschließen
|
||||
ausschließlich ausschluß ausschuß außen außenminister außenministerium
|
||||
außenpolitik außenseiter außer außerdem äußere äußeren außerhalb
|
||||
ausschließlich ausschluß ausschuß auszuschließen außen außenminister
|
||||
außenministerium außenpolitik außenseiter außer außerdem außerhalb
|
||||
===ß===
|
||||
äußern außerordentlich außerordentlichen äußerst äußert äußerte
|
||||
äußerten äußerung äußerungen auszuschließen beeinflußt befaßt
|
||||
begrüßen begrüßt begrüßte besaß beschließen beschließt beschloß
|
||||
beschluß bewußt bewußtsein bezirksausschuß bißchen bloß bloße bloßen
|
||||
außerordentlich außerordentlichen beeinflußt befaßt begrüßen begrüßt
|
||||
begrüßte besaß beschließen beschließt beschloß beschluß bewußt
|
||||
bewußtsein bezirksausschuß bißchen bloß bloße bloßen bundesaußenminister
|
||||
bundesstraße daß draußen dreißig einbußen einfluß einigermaßen
|
||||
===ß===
|
||||
bundesaußenminister bundesstraße daß draußen dreißig einbußen einfluß
|
||||
einigermaßen einschließlich entschluß erdgeschoß erfaßt erschließen
|
||||
erschließung faßt fließen fließt fluß friedensprozeß friedrichstraße
|
||||
fuß fußball fußballer füße füßen fußgänger geäußert gefaßt gemäß
|
||||
einschließlich entschluß erdgeschoß erfaßt erschließen erschließung faßt
|
||||
fließen fließt fluß friedensprozeß friedrichstraße fuß fußball
|
||||
fußballer fußgänger füße füßen gefaßt gemäß genießen genießt genuß
|
||||
gestoßen gewissermaßen gewiß gewißheit gewußt geäußert gießen
|
||||
===ß===
|
||||
genießen genießt genuß gestoßen gewiß gewissermaßen gewißheit gewußt
|
||||
gießen gleichermaßen groß großbritannien große größe großem großen
|
||||
größen größenordnung großer größer größere größeren größerer
|
||||
größeres großes großhandel großmutter großstadt großstädten größte
|
||||
gleichermaßen groß großbritannien große großem großen großer großes
|
||||
großhandel großmutter großstadt großstädten großteil großvater
|
||||
großzügig größe größen größenordnung größer größere größeren
|
||||
größerer größeres größte größten größtenteils größter hauptstraße
|
||||
===ß===
|
||||
großteil größten größtenteils größter großvater großzügig haß
|
||||
hauptstraße heiß heiße heißen heißt hieß jahresüberschuß kompromiß
|
||||
kongreß landstraße läßt ließ ließe ließen maß maße maßgeblich
|
||||
maßnahme maßnahmen maßstab maßstäbe mißbrauch mißbraucht mißtrauen muß
|
||||
haß heiß heiße heißen heißt hieß jahresüberschuß kompromiß kongreß
|
||||
landstraße ließ ließe ließen läßt maß maße maßgeblich maßnahme
|
||||
maßnahmen maßstab maßstäbe mißbrauch mißbraucht mißtrauen mutmaßliche
|
||||
mutmaßlichen muß mußte mußten müßte müßten paß paßt preußen prozeß
|
||||
===ß===
|
||||
mußte müßte mußten müßten mutmaßliche mutmaßlichen paß paßt preußen
|
||||
prozeß regelmäßig regelmäßige regelmäßigen reißen reißt riß rußland
|
||||
regelmäßig regelmäßige regelmäßigen reißen reißt riß rußland
|
||||
rußlands saß saßen schießen schießt schließen schließlich schließt
|
||||
schließung schloß schluß schoß schuß selbstbewußt selbstbewußtsein
|
||||
sparmaßnahmen spaß stieß stießen stoßen strauß straßburg straße
|
||||
===ß===
|
||||
sparmaßnahmen spaß stieß stießen stoßen stößt straßburg straße
|
||||
straßen straßenbahn straßenverkehr strauß streß überschuß umfaßt
|
||||
ungewiß untersuchungsausschuß veranlaßt verfaßt vergrößert verläßt
|
||||
verließ verließen vermißt verpaßt verstoß verstöße verstoßen vorstoß
|
||||
straßen straßenbahn straßenverkehr streß stößt umfaßt ungewiß
|
||||
untersuchungsausschuß veranlaßt verfaßt vergrößert verließ verließen
|
||||
verläßt vermißt verpaßt verstoß verstoßen verstöße vorstoß weiß
|
||||
weiße weißen weißer weißrußland wußte wußten zusammengefaßt
|
||||
===ß===
|
||||
weiß weiße weißen weißer weißrußland wußte wußten zusammengefaßt
|
||||
zusammenschluß zuschuß zweitgrößte
|
||||
zusammenschluß zuschuß zweitgrößte äußere äußeren äußern äußerst
|
||||
äußert äußerte äußerten äußerung äußerungen überschuß
|
||||
===y===
|
||||
ägypten ägyptischen analyse analysen analysieren analysiert analyst analysten
|
||||
asyl asylbewerber baby bayer bayerische bayerischen bayern bayerns bayreuth
|
||||
boykott city company dayton dynamik foyer grosny gymnasium handy harry henry
|
||||
hollywood infotyp jury libyen lyrik malaysia meyer mythen mythos oberbayern
|
||||
analyse analysen analysieren analysiert analyst analysten asyl asylbewerber
|
||||
baby bayer bayerische bayerischen bayern bayerns bayreuth boykott city company
|
||||
dayton dynamik foyer grosny gymnasium handy harry henry hollywood infotyp jury
|
||||
libyen lyrik malaysia meyer mythen mythos oberbayern olympia olympiasieger
|
||||
===y===
|
||||
olympia olympiasieger olympiastadion olympischen party physik physiker
|
||||
plädoyer psychisch psychologen psychologie psychologische rhythmus sapsystem
|
||||
sony story sydney symbol symbole sympathie symptome syrien system systematisch
|
||||
systematische systeme systemen systems thyssen tony tschernobyl typ typen
|
||||
olympiastadion olympischen party physik physiker plädoyer psychisch
|
||||
psychologen psychologie psychologische rhythmus sapsystem sony story sydney
|
||||
symbol symbole sympathie symptome syrien system systematisch systematische
|
||||
systeme systemen systems thyssen tony tschernobyl typ typen typisch typische
|
||||
===y===
|
||||
typisch typische typischen typs university yen york yorker zyklus
|
||||
typischen typs university yen york yorker zyklus ägypten ägyptischen
|
||||
|
45
tipptrainer/ktouch/sortWords/sortWords.sh
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
# Autor: Adam Taras <www.adam-taras.de/opensource>
|
||||
# Datum: 20.06.2009
|
||||
|
||||
@ -211,37 +211,24 @@ fi
|
||||
|
||||
|
||||
#=== Erstelle KTouch-Lektion ===
|
||||
courseid=$(uuidgen)
|
||||
echo -n "Erstelle KTouch-Lektion \"$fileKTouch\"..."
|
||||
echo -e "<?xml version=\"1.0\"?>\n<course>\n"\
|
||||
"<id>{$courseid}</id>\n"\
|
||||
"<title>Deutsch (Neo2 Sortierte Wörter)</title>\n"\
|
||||
"<description>`date -I` - Neo2 - Mit \"$0\" automatisch generierte Datei</description>\n"\
|
||||
"<keyboardLayout>de(neo)</keyboardLayout>\n"\
|
||||
"<lessons>" > $fileKTouch
|
||||
while read -r line
|
||||
do
|
||||
case "$line" in
|
||||
===*===)
|
||||
keys=${line%===}
|
||||
keys=${keys#===}
|
||||
printf '</text>\n </lesson>\n' >> "$fileKTouch"
|
||||
printf ' <lesson>\n <id>{%s}</id>\n <title>Keys: %s</title>\n <newCharacters>%s</newCharacters>\n <text>' "$(uuidgen)" "$keys" "$keys" >> "$fileKTouch"
|
||||
read -r line
|
||||
printf '%s' "$line" >> "$fileKTouch"
|
||||
;;
|
||||
*)
|
||||
printf '\n%s' "$line" >> "$fileKTouch"
|
||||
;;
|
||||
esac
|
||||
done < "$fileOut"
|
||||
printf '</text>\n </lesson>\n </lessons>\n</course>\n' >> "$fileKTouch"
|
||||
|
||||
|
||||
printf "8d\n8d\nwq\n" |ed "$fileKTouch"
|
||||
echo -e "<KTouchLecture>\n"\
|
||||
"<Title>Deutsch (Neo2 Sortierte Wörter)</Title>\n"\
|
||||
"<Comment>`date -I` - Neo2 - Mit \"$0\" automatisch generierte Datei</Comment>\n"\
|
||||
"<FontSuggestions>Monospace</FontSuggestions>\n"\
|
||||
"<Levels>" > $fileKTouch
|
||||
sed -e 's/^===/ <Level>\n <NewCharacters>/' \
|
||||
-e 's/===$/<\/NewCharacters>/' \
|
||||
-e '/^ /! s/$/<\/Line>/' -e '/^ /! s/^/ <Line>/' \
|
||||
-e '/^ <Level>/ i\ <\/Level>' \
|
||||
$fileOut >> $fileKTouch
|
||||
sed -e '6d' $fileKTouch > $fileKTouch.tmp #Entferne die erste zu viel eingefügte " </Level>" Zeile
|
||||
rm $fileKTouch
|
||||
mv $fileKTouch.tmp $fileKTouch
|
||||
echo -e " </Level>\n </Levels>\n</KTouchLecture>" >> $fileKTouch
|
||||
echo "OK"
|
||||
|
||||
|
||||
#=== Clean & Exit ===
|
||||
rm $fileTmpFormatted
|
||||
exit 0
|
||||
exit 0
|
3
windows/kbdneo2/.gitattributes
vendored
@ -1,3 +0,0 @@
|
||||
*.{cmd,[cC][mM][dD]} text eol=crlf
|
||||
*.{bat,[bB][aA][tT]} text eol=crlf
|
||||
*.{reg,[rR][eE][gG]} text eol=crlf
|
@ -4,7 +4,7 @@ Für die weitergehende Entwicklung und Kompilierung der Treiberlayout-DLLs unter
|
||||
1. Über Visual Studio
|
||||
2. Über ein manuelles Buildskript
|
||||
|
||||
Die erste Variante ist der kanonische Weg. Die zweite Variante benötigt kein Visual Studio und insbesondere kein umfangreiches Windows Driver Kit. Sie kann für eigene Anpassungen an den Layoutdateien verwendet werden.
|
||||
Die erste Variante ist einfacher und dient auch der Entwicklung. Die zweite Variante benötigt kein Visual Studio und insbesondere kein Windows Driver Kit.
|
||||
|
||||
|
||||
## Regulärer Build mit Visual Studio
|
||||
@ -36,24 +36,28 @@ Für jedes der enthaltenen Tastaturlayouts sind nun je zwei .dll-Dateien (Name =
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
* Visual Studio Build Tools: Auf https://visualstudio.microsoft.com/de/downloads/ nach unten scrollen, unter „Alle Downloads“ den Reiter „Tools für Visual Studio“ aufklappen und „Buildtools für Visual Studio 2022“ auswählen.
|
||||
* Visual Studio Build Tools: Auf https://visualstudio.microsoft.com/de/downloads/ nach unten scrollen, unter „Alle Downloads“ den Reiter „Tools für Visual Studio 2019“ aufklappen und „Buildtools für Visual Studio 2019“ auswählen.
|
||||
* Im Installer unter „Workloads“ die C++-Buildtools auswählen – oder alternativ unter „Einzelne Komponenten“ die aktuellen x64/x86-Buildtools sowie das aktuelle Windows 10 SDK auswählen.
|
||||
|
||||
Ältere, bereits installierte Buildtools funktionieren gleichermaßen. Dazu muss man vor dem Build einmalig die Variable `buildtools` in den Skripten umstellen auf die entsprechende Version (Jahreszahl).
|
||||
|
||||
### Build
|
||||
|
||||
Nach der Installation können einzelne oder alle Layouts über die im `build`-Verzeichnis verfügbaren Skripte gebaut werden.
|
||||
Nach der Installation stehen im Startmenü im Ordner Visual Studio 2019 verschiedene Command Prompts zur Verfügung. Das Vorgehen ist wie folgt:
|
||||
|
||||
* ins `build`-Verzeichnis unterhalb von `windows\kbdneo2` wechseln
|
||||
* `build_all` ausführen, oder alternativ `build_layout [Layoutname]`, wobei hier der Layoutname ohne "kbd" angegeben wird (z.B. neo2 oder bone), wie er im `source`-Verzeichnis verwendet wird.
|
||||
* x86_x64 Cross Tools Command Prompt for VS 2019 starten
|
||||
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
|
||||
* `build_x64` ausführen
|
||||
|
||||
Dies baut die x64-Varianten der DLLs. Für die x86-Varianten (für 32 Bit bzw. SysWOW64) lautet es:
|
||||
* x86 Native Tools Command Prompt for VS 2019 starten
|
||||
* ins `build`-Verzeichnis unterhalb von kbdneo wechseln
|
||||
* `build_x86` ausführen
|
||||
|
||||
Die erzeugten DLLs sind anschließend in den Unterverzeichnissen `x64`, `x86` und `x86-wow64` der jeweiligen Layoutvarianten zu finden.
|
||||
|
||||
|
||||
## kbdqwertz mit „ß“ unten
|
||||
|
||||
Von kbdqwertz (aus historischen Gründen im Verzeichnis `kbdgr2` platziert) gibt es zwei Varianten, einmal mit dem regulären QWERTZ-Layout mit ß oben und dem Bindestrich unten. Die zweite Variante tauscht beides, sodass der Bindestrich gemeinsam mit anderen Strichen auf weiteren Ebenen auf der Strichtaste landet. Das „ß“ verschiebt sich dafür ins Hauptfeld.
|
||||
Von kbdqwertz (aus historischen Gründen in kbdgr2 platziert) gibt es zwei Varianten, einmal mit dem regulären QWERTZ-Layout mit ß oben und dem Bindestrich unten. Die zweite Variante tauscht beides, sodass der Bindestrich gemeinsam mit anderen Strichen auf weiteren Ebenen auf der Strichtaste landet. Das „ß“ verschiebt sich dafür ins Hauptfeld.
|
||||
|
||||
Um kbdqwertz mit „ß“ unten zu kompilieren, muss in `kbdgr2.h` folgende Zeile einkommentiert werden:
|
||||
```
|
||||
|
@ -1,95 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set buildtools=2022
|
||||
|
||||
echo Baue alle Layouts (Neo, NeoQwertz, Bone, Mine, Koy, Noted) ...
|
||||
echo.
|
||||
|
||||
pushd ..\source
|
||||
|
||||
REM Zuerst die x64-Varianten bauen
|
||||
|
||||
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
|
||||
popd
|
||||
|
||||
cd kbdbone
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd bone
|
||||
cd ..
|
||||
|
||||
cd kbdneo2
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd neo2
|
||||
cd ..
|
||||
|
||||
cd kbdgr2
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd gr2
|
||||
cd ..
|
||||
|
||||
cd kbdmine
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd mine
|
||||
cd ..
|
||||
|
||||
cd kbdkoy
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd koy
|
||||
cd ..
|
||||
|
||||
cd kbdnoted
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd noted
|
||||
cd ..
|
||||
|
||||
|
||||
REM x86 und x86_wow64 bauen
|
||||
|
||||
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvars32.bat"
|
||||
popd
|
||||
|
||||
cd kbdbone
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd bone
|
||||
call ..\..\build\build_variant_x86_wow64.cmd bone
|
||||
cd ..
|
||||
|
||||
cd kbdneo2
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd neo2
|
||||
call ..\..\build\build_variant_x86_wow64.cmd neo2
|
||||
cd ..
|
||||
|
||||
cd kbdgr2
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd gr2
|
||||
call ..\..\build\build_variant_x86_wow64.cmd gr2
|
||||
cd ..
|
||||
|
||||
cd kbdmine
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd mine
|
||||
call ..\..\build\build_variant_x86_wow64.cmd mine
|
||||
cd ..
|
||||
|
||||
cd kbdkoy
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd koy
|
||||
call ..\..\build\build_variant_x86_wow64.cmd koy
|
||||
cd ..
|
||||
|
||||
cd kbdnoted
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd noted
|
||||
call ..\..\build\build_variant_x86_wow64.cmd noted
|
||||
cd ..
|
||||
|
||||
popd
|
@ -1,32 +0,0 @@
|
||||
@echo off
|
||||
|
||||
if "%1"=="" (
|
||||
echo Bitte das entsprechende Layout angeben, so benannt wie das Quellverzeichnis ^(ohne "kbd"^).
|
||||
exit /b
|
||||
)
|
||||
|
||||
IF NOT EXIST ..\source\kbd%1 (
|
||||
echo Das Layoutverzeichnis kbd%1 existiert nicht.
|
||||
exit /b
|
||||
)
|
||||
|
||||
set buildtools=2022
|
||||
|
||||
pushd ..\source\kbd%1
|
||||
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
|
||||
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvarsx86_amd64.bat"
|
||||
popd
|
||||
call ..\..\build\build_variant_x64.cmd %1
|
||||
|
||||
pushd "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\"
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\%buildtools%\BuildTools\VC\Auxiliary\Build\vcvars32.bat"
|
||||
popd
|
||||
call ..\..\build\build_variant_x86.cmd %1
|
||||
call ..\..\build\build_variant_x86_wow64.cmd %1
|
||||
|
||||
popd
|
@ -1,7 +1,7 @@
|
||||
@echo off
|
||||
|
||||
if "%1"=="" (
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_x64 gedacht.
|
||||
EXIT /B
|
||||
)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
@echo off
|
||||
|
||||
if "%1"=="" (
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_x86 gedacht.
|
||||
EXIT /B
|
||||
)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
@echo off
|
||||
|
||||
if "%1"=="" (
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_layout gedacht.
|
||||
ECHO Dieses Skript ist nur zur internen Verwendung von build_x86 gedacht.
|
||||
EXIT /B
|
||||
)
|
||||
|
||||
|
22
windows/kbdneo2/build/build_x64.cmd
Normal file
@ -0,0 +1,22 @@
|
||||
@echo off
|
||||
|
||||
pushd ..\source
|
||||
|
||||
REM Build Bone, Neo, Qwertz
|
||||
|
||||
cd kbdbone
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd bone
|
||||
cd ..
|
||||
|
||||
cd kbdneo2
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd neo2
|
||||
cd ..
|
||||
|
||||
cd kbdgr2
|
||||
IF NOT EXIST x64 mkdir x64
|
||||
call ..\..\build\build_variant_x64.cmd gr2
|
||||
cd ..
|
||||
|
||||
popd
|
28
windows/kbdneo2/build/build_x86.cmd
Normal file
@ -0,0 +1,28 @@
|
||||
@echo off
|
||||
|
||||
pushd ..\source
|
||||
|
||||
REM Build Bone, Neo, Qwertz
|
||||
|
||||
cd kbdbone
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd bone
|
||||
call ..\..\build\build_variant_x86_wow64.cmd bone
|
||||
cd ..
|
||||
|
||||
cd kbdneo2
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd neo2
|
||||
call ..\..\build\build_variant_x86_wow64.cmd neo2
|
||||
cd ..
|
||||
|
||||
cd kbdgr2
|
||||
IF NOT EXIST x86 mkdir x86
|
||||
IF NOT EXIST x86-wow64 mkdir x86-wow64
|
||||
call ..\..\build\build_variant_x86.cmd gr2
|
||||
call ..\..\build\build_variant_x86_wow64.cmd gr2
|
||||
cd ..
|
||||
|
||||
popd
|
@ -1,8 +0,0 @@
|
||||
@echo off
|
||||
|
||||
call zip_layout neo2 neo
|
||||
call zip_layout gr2 qwertz
|
||||
call zip_layout bone
|
||||
call zip_layout mine
|
||||
call zip_layout koy
|
||||
call zip_layout noted
|
@ -1,47 +0,0 @@
|
||||
@echo off
|
||||
|
||||
IF [%~1]==[] (
|
||||
echo Bitte das entsprechende Layout angeben, so benannt wie das Quellverzeichnis ^(ohne "kbd"^).
|
||||
exit /b
|
||||
)
|
||||
|
||||
IF NOT EXIST ..\source\kbd%1 (
|
||||
echo Das Layoutverzeichnis kbd%1 existiert nicht.
|
||||
exit /b
|
||||
)
|
||||
|
||||
REM Falls notwendig, vollständigen Pfad zur (7z) Executable angeben
|
||||
SET zipcmd=7z
|
||||
REM Switches: Ziparchiv, normale Kompression, rekursiv
|
||||
SET zipswitches=a -tzip -mx5 -r
|
||||
|
||||
SET layout=kbd%1
|
||||
IF NOT [%~2]==[] SET layout=kbd%2
|
||||
|
||||
pushd ..\source\kbd%1
|
||||
|
||||
IF EXIST %layout%64 rmdir /S /Q %layout%64
|
||||
IF EXIST %layout%32 rmdir /S /Q %layout%32
|
||||
|
||||
echo Kopiere Dateien ...
|
||||
|
||||
mkdir %layout%64\System32
|
||||
mkdir %layout%64\SysWOW64
|
||||
copy x64\kbd%1.dll %layout%64\System32\ >NUL
|
||||
copy x86-wow64\kbd%1.dll %layout%64\SysWOW64\ >NUL
|
||||
copy ..\..\build\%layout%_win10_install.reg %layout%64\ >NUL
|
||||
copy ..\..\build\%layout%_win10_uninstall.reg %layout%64\ >NUL
|
||||
|
||||
mkdir %layout%32\System32
|
||||
copy x86\kbd%1.dll %layout%32\System32\ >NUL
|
||||
copy ..\..\build\%layout%_win10_install.reg %layout%32\ >NUL
|
||||
copy ..\..\build\%layout%_win10_uninstall.reg %layout%32\ >NUL
|
||||
|
||||
echo Erstelle Zip-Archive ...
|
||||
|
||||
%zipcmd% %zipswitches% %layout%64.zip %layout%64\ >NUL
|
||||
IF %errorlevel% EQU 0 rmdir /S /Q %layout%64
|
||||
%zipcmd% %zipswitches% %layout%32.zip %layout%32\ >NUL
|
||||
IF %errorlevel% EQU 0 rmdir /S /Q %layout%32
|
||||
|
||||
popd
|
6
windows/kbdneo2/source/.vscode/settings.json
vendored
@ -1,6 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"kbd_mod.h": "c",
|
||||
"kbd.h": "c"
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************\
|
||||
* Module Name: KBD_MOD.H
|
||||
* Änderungen an der KBD.H für Neo 2.0 oder darauf basierende Layouts
|
||||
\****************************************************************************/
|
||||
|
||||
#undef DEADTRANS
|
||||
/****************************************************************************\
|
||||
* Module Name: KBD_MOD.H
|
||||
* Änderungen an der KBD.H für Neo 2.0 oder darauf basierende Layouts
|
||||
\****************************************************************************/
|
||||
|
||||
#undef DEADTRANS
|
||||
#define DEADTRANS(accent, ch, comp, flags) { MAKELONG(ch, accent), comp, flags}
|
@ -26,26 +26,9 @@
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
*
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
|
||||
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
|
||||
* |Tab¦j ¦d ¦u ¦a ¦x ¦p ¦h ¦l ¦m ¦w ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
|
||||
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
|
||||
* | M3 ¦c ¦t ¦i ¦e ¦o ¦b ¦n ¦r ¦s ¦g ¦q ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
|
||||
* |---------------------------------------------------------| +----+ +---+---+---+---¦
|
||||
* |Ums ¦M4 ¦f ¦v ¦ü ¦ä ¦ö ¦y ¦z ¦, ¦. ¦k ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
\************************************************************************************************************** */
|
||||
*/
|
||||
|
||||
// Tastenumbelegung für Bone ; sonstige Tastenzuordnung siehe kbd.h
|
||||
// Tastenumbelegung für Neo 2.0 ; sonstige Tastenzuordnung siehe kbd.h
|
||||
#undef T0D
|
||||
#define T0D _EQ( OEM_2 ) // T2
|
||||
#undef T10
|
||||
|
@ -16,8 +16,8 @@
|
||||
#undef VER_COMPANYNAME_STR
|
||||
#define VER_COMPANYNAME_STR "neo-layout.org"
|
||||
#undef VER_PRODUCTNAME_STR
|
||||
#define VER_PRODUCTNAME_STR "Bone Tastaturtreiber"
|
||||
#define VER_LEGALCOPYRIGHT_STR "https://neo-layout.org/Beitragen/Lizenzfragen/"
|
||||
#define VER_PRODUCTNAME_STR "Deutsch 2 Tastaturtreiber"
|
||||
#define VER_LEGALCOPYRIGHT_STR "wiki.neo-layout.org/wiki/Lizenzfragen"
|
||||
#undef VER_LEGALTRADEMARKS_STR
|
||||
#define VER_LEGALTRADEMARKS_STR \
|
||||
"wiki.neo-layout.org/wiki/Lizenzfragen"
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
#define VER_FILETYPE VFT_DLL
|
||||
#define VER_FILESUBTYPE VFT2_DRV_KEYBOARD
|
||||
#define VER_FILEDESCRIPTION_STR "Deutsch (Bone) Tastaturlayout"
|
||||
#define VER_FILEDESCRIPTION_STR "Deutsch 2.0 (Bone)"
|
||||
#define VER_INTERNALNAME_STR "kbdbone"
|
||||
#define VER_ORIGINALFILENAME_STR "kbdbone.dll"
|
||||
|
||||
|
7
windows/kbdneo2/source/kbdgr2/kbd_mod.h
Normal file
@ -0,0 +1,7 @@
|
||||
/****************************************************************************\
|
||||
* Module Name: KBD_MOD.H
|
||||
* Änderungen an der KBD.H für Neo 2.0 oder darauf basierende Layouts
|
||||
\****************************************************************************/
|
||||
|
||||
#undef DEADTRANS
|
||||
#define DEADTRANS(accent, ch, comp, flags) { MAKELONG(ch, accent), comp, flags}
|
@ -29,24 +29,7 @@
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
*
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
|
||||
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
|
||||
* |Tab¦x ¦v ¦l ¦c ¦w ¦k ¦h ¦g ¦f ¦q ¦ß ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
|
||||
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
|
||||
* | M3 ¦u ¦i ¦a ¦e ¦o ¦s ¦n ¦r ¦t ¦d ¦y ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
|
||||
* |---------------------------------------------------------| +----+ +---+---+---+---¦
|
||||
* |Ums ¦M4 ¦ü ¦ö ¦ä ¦p ¦z ¦b ¦m ¦, ¦. ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
\************************************************************************************************************** */
|
||||
*/
|
||||
|
||||
//qwertz
|
||||
#undef T15
|
||||
|
@ -17,7 +17,7 @@
|
||||
#define VER_COMPANYNAME_STR "neo-layout.org"
|
||||
#undef VER_PRODUCTNAME_STR
|
||||
#define VER_PRODUCTNAME_STR "Deutsch 2 Tastaturtreiber"
|
||||
#define VER_LEGALCOPYRIGHT_STR "https://neo-layout.org/Beitragen/Lizenzfragen/"
|
||||
#define VER_LEGALCOPYRIGHT_STR "wiki.neo-layout.org/wiki/Lizenzfragen"
|
||||
#undef VER_LEGALTRADEMARKS_STR
|
||||
#define VER_LEGALTRADEMARKS_STR \
|
||||
"wiki.neo-layout.org/wiki/Lizenzfragen"
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
#define VER_FILETYPE VFT_DLL
|
||||
#define VER_FILESUBTYPE VFT2_DRV_KEYBOARD
|
||||
#define VER_FILEDESCRIPTION_STR "Deutsch (unergonomisch) Tastaturlayout"
|
||||
#define VER_FILEDESCRIPTION_STR "Deutsch 2.0 (unergonomisch)"
|
||||
#define VER_INTERNALNAME_STR "kbdgr2"
|
||||
#define VER_ORIGINALFILENAME_STR "kbdgr2.dll"
|
||||
|
||||
|
1505
windows/kbdneo2/source/kbdgr2/keysym4utf16.h
Normal file
@ -1,267 +0,0 @@
|
||||
/****************************************************************************\
|
||||
* Module Name: KBDKOY.C
|
||||
* KOY-Layout, basierend auf AdNW auf Neo2
|
||||
\****************************************************************************/
|
||||
|
||||
#include <windows.h>
|
||||
#include "kbd.h"
|
||||
#include "../kbd_mod.h"
|
||||
#include "../keysym4utf16.h"
|
||||
#include "kbdkoy.h"
|
||||
#include "../kbd_base.c"
|
||||
|
||||
|
||||
/* **************************************************************************\
|
||||
* Spezielle Werte für den VK (Spalte 1)
|
||||
* 0xff - Tote Zeichen für obige Zeile
|
||||
* 0 - Beendet die gesamte Liste
|
||||
*
|
||||
* Spezielle Werte für Attributes (Spalte 2)
|
||||
* CAPLOK - CAPS-LOCK wirkt auf diese Taste wie SHIFT
|
||||
* KANALOK - Mod4-LOCK wirkt auf diese Taste wie Mod4
|
||||
*
|
||||
* Spezielle Werte für wch[*]
|
||||
* WCH_NONE - Keine Belegung
|
||||
* WCH_DEAD - Totes Zeichen
|
||||
* WCH_LGTR - Ligatur
|
||||
\************************************************************************** */
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS6 aVkToWch6[] = {
|
||||
// Reihenfolge der Ebene wie oben ( ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { &aVkToBits[0],)… festgelegt
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU |
|
||||
// |===================|===========|=======================|=======================|===============|===================|===================|
|
||||
// Zeile 1
|
||||
{'1' ,KANALOK ,'1' ,degree ,onesuperior ,ordfeminine ,onesubscript ,notsign },
|
||||
{'3' ,KANALOK ,'3' ,litersign ,threesuperior ,numerosign ,threesubscript ,logicaland },
|
||||
{'4' ,KANALOK ,'4' ,guillemotright ,guillemotright2 ,WCH_NONE ,femalesymbol ,uptack },
|
||||
{'5' ,KANALOK ,'5' ,guillemotleft ,guillemotleft2 ,periodcentered ,malesymbol ,measuredangle },
|
||||
{'7' ,KANALOK ,'7' ,EuroSign ,yen ,currency ,scriptkappa ,rightarrow },
|
||||
{'8' ,KANALOK ,'8' ,doublelowquotemark ,singlelowquotemark ,WCH_NONE ,leftanglebracket ,infinity },
|
||||
{'9' ,KANALOK ,'9' ,leftdoublequotemark ,leftsinglequotemark ,'/' ,rightanglebracket ,variation },
|
||||
{'0' ,KANALOK ,'0' ,rightdoublequotemark ,rightsinglequotemark ,'*' ,zerosubscript ,emptyset },
|
||||
{VK_OEM_MINUS ,KANALOK ,'-' ,emdash ,WCH_NONE ,'-' ,nobreakhyphen ,hyphen },
|
||||
{VK_OEM_2 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 2
|
||||
{0xff ,0 ,grave ,cedilla ,ringabove ,diaeresis ,greek_dasia ,macron },
|
||||
{VK_TAB ,0 ,'\t' ,'\t' ,WCH_DEAD ,'\t' ,'\t' ,'\t' },
|
||||
{0xff ,0 ,WCH_NONE ,WCH_NONE ,Multi_key ,WCH_NONE ,WCH_NONE ,WCH_NONE },
|
||||
{'K' ,CAPLOK | KANALOK ,'k' ,'K' ,ellipsis ,WCH_NONE ,Greek_kappa ,multiply },
|
||||
{VK_OEM_PERIOD ,KANALOK ,'.' ,enfilledcircbullet ,'_' ,WCH_NONE ,scripttheta ,arrowfrombarright },
|
||||
{'O' ,CAPLOK | KANALOK ,'o' ,'O' ,'[' ,WCH_NONE ,Greek_omicron ,elementof },
|
||||
{VK_OEM_COMMA ,KANALOK ,',' ,endash ,']' ,WCH_NONE ,scriptrho ,implies },
|
||||
{'V' ,CAPLOK | KANALOK ,'v' ,'V' ,'!' ,exclamdown ,WCH_NONE ,radical },
|
||||
{'G' ,CAPLOK | KANALOK ,'g' ,'G' ,'<' ,'7' ,Greek_gamma ,Greek_GAMMA },
|
||||
{'C' ,CAPLOK | KANALOK ,'c' ,'C' ,'>' ,'8' ,Greek_chi ,doublestruck_c },
|
||||
{'L' ,CAPLOK | KANALOK ,'l' ,'L' ,'=' ,'9' ,Greek_lamda ,Greek_LAMDA },
|
||||
{'Z' ,CAPLOK | KANALOK ,'z' ,'Z' ,slong ,minussign ,Greek_zeta ,doublestruck_z },
|
||||
{'H' ,CAPLOK | KANALOK ,'h' ,'H' ,backslash ,WCH_NONE ,Greek_psi ,Greek_PSI },
|
||||
{'A' ,CAPLOK | KANALOK ,'a' ,'A' ,'/' ,WCH_NONE ,Greek_alpha ,forall },
|
||||
{'E' ,CAPLOK | KANALOK ,'e' ,'E' ,'{' ,WCH_NONE ,Greek_epsilon ,thereexists },
|
||||
{'I' ,CAPLOK | KANALOK ,'i' ,'I' ,'}' ,WCH_NONE ,Greek_iota ,integral },
|
||||
{'U' ,CAPLOK | KANALOK ,'u' ,'U' ,'*' ,WCH_NONE ,WCH_NONE ,includedin },
|
||||
{'D' ,CAPLOK | KANALOK ,'d' ,'D' ,'?' ,questiondown ,Greek_delta ,Greek_DELTA },
|
||||
{'T' ,CAPLOK | KANALOK ,'t' ,'T' ,'(' ,'4' ,Greek_tau ,partialderivative },
|
||||
{'R' ,CAPLOK | KANALOK ,'r' ,'R' ,')' ,'5' ,Greek_rho ,doublestruck_r },
|
||||
{'N' ,CAPLOK | KANALOK ,'n' ,'N' ,'-' ,'6' ,Greek_nu ,doublestruck_n },
|
||||
{'S' ,CAPLOK | KANALOK ,'s' ,'S' ,':' ,',' ,Greek_sigma ,Greek_SIGMA },
|
||||
{'F' ,CAPLOK | KANALOK ,'f' ,'F' ,'@' ,'.' ,Greek_phi ,Greek_PHI },
|
||||
{'X' ,CAPLOK | KANALOK ,'x' ,'X' ,'#' ,WCH_NONE ,Greek_xi ,Greek_XI },
|
||||
{'Q' ,CAPLOK | KANALOK ,'q' ,'Q' ,'$' ,WCH_NONE ,scriptphi ,doublestruck_q },
|
||||
{VK_OEM_7 /*ä*/ ,CAPLOK | KANALOK ,adiaeresis ,Adiaeresis ,'|' ,WCH_NONE ,Greek_eta ,alefsymbol },
|
||||
{VK_OEM_5 /*ü*/ ,CAPLOK | KANALOK ,udiaeresis ,Udiaeresis ,'~' ,WCH_NONE ,WCH_NONE ,union },
|
||||
{VK_OEM_6 /*ö*/ ,CAPLOK | KANALOK ,odiaeresis ,Odiaeresis ,'`' ,WCH_NONE ,straightepsilon ,intersection },
|
||||
{'B' ,CAPLOK | KANALOK ,'b' ,'B' ,'+' ,':' ,Greek_beta ,doublearrowleft },
|
||||
{'P' ,CAPLOK | KANALOK ,'p' ,'P' ,'%' ,'1' ,Greek_pi ,Greek_PI },
|
||||
{'W' ,CAPLOK | KANALOK ,'w' ,'W' ,quotedbl ,'2' ,Greek_omega ,Greek_OMEGA },
|
||||
{'M' ,CAPLOK | KANALOK ,'m' ,'M' ,apostrophe ,'3' ,Greek_mu ,ifonlyif },
|
||||
{VK_OEM_1 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 1
|
||||
{0xff ,0 ,'^' ,caron ,totdreh ,abovedot ,rhotichook ,'.' },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
|
||||
};
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS7 aVkToWch7[] = {
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control |
|
||||
// |===================|===========|===========|===========|===========|=======================|===============|===============|
|
||||
{VK_OEM_3 /*ß*/ ,CAPLOK | KANALOK ,ssharp ,Ssharp ,'&' ,'+' ,Greek_finalsmallsigma ,jot ,escape },
|
||||
{VK_OEM_4 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,infoseparator3 }, //Tote Taste 3
|
||||
{0xff ,0 ,acute ,'~' ,'-' ,doubleacute,greek_psili ,breve ,WCH_NONE },
|
||||
{'Y' ,CAPLOK | KANALOK ,'y' ,'Y' ,asciicircum,WCH_NONE ,Greek_upsilon ,nabla ,infoseparator4 },
|
||||
{VK_SPACE ,KANALOK ,space ,space ,space ,'0' ,nobreakspace ,nnobreakspace ,space },
|
||||
{VK_BACK ,0 ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,delete },
|
||||
{VK_ESCAPE ,0 ,escape ,escape ,escape ,escape ,escape ,escape ,escape },
|
||||
{VK_RETURN ,0 ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\n' },
|
||||
{VK_CANCEL ,0 ,endoftext ,endoftext ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE ,endoftext },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
|
||||
};
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS8 aVkToWch8[] = {
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control | Control+Shift |
|
||||
// |===================|===========|===========|===========|===========|===================|===========|===========|===============|
|
||||
{'2' ,KANALOK ,'2' ,section ,twosuperior,masculine ,twosubscript ,logicalor ,WCH_NONE ,0x0000 },
|
||||
{'6' ,KANALOK ,'6' ,dollar ,cent ,sterling ,maleandfemalesign ,parallelto ,WCH_NONE ,infoseparator2 },
|
||||
{'J' ,CAPLOK | KANALOK ,'j' ,'J' ,';' ,';' ,Greek_theta ,Greek_THETA,WCH_NONE ,infoseparator1 },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0}
|
||||
};
|
||||
|
||||
// Hier müssen die verwendeten WChar_Tables vorkommen; Numpad MUSS letzte Zeile sein.
|
||||
// Die Funktion VkKeyScan() versucht, zu einem Zeichen den zugehörigen Virtual Key
|
||||
// und Modifier zu finden. Die Numpad-Definition muss zum Schluss kommen, damit Zeichen
|
||||
// wie '0' als vom Hauptfeld kommend interpretiert werden, falls dort vorhanden.
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {
|
||||
{ (PVK_TO_WCHARS1)aVkToWch8, 8, sizeof(aVkToWch8[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch6, 6, sizeof(aVkToWch6[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch7, 7, sizeof(aVkToWch7[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch4, 4, sizeof(aVkToWch4[0]) },
|
||||
{ NULL, 0, 0 },
|
||||
};
|
||||
|
||||
|
||||
/* **************************************************************************\
|
||||
* aKeyNames[], aKeyNamesExt[] - Virtual Scancode to Key Name tables
|
||||
*
|
||||
* Table attributes: Ordered Scan (by scancode), null-terminated
|
||||
*
|
||||
* Nur für Tasten, die keine Zeichen erzeugen, Tasten die Zeichen erzeugen
|
||||
* werden danach benannt
|
||||
\************************************************************************** */
|
||||
|
||||
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = {
|
||||
0x01, L"ESC",
|
||||
0x0e, L"R\x00DC" L"CKTASTE",
|
||||
0x0f, L"TABULATOR",
|
||||
0x1c, L"EINGABE",
|
||||
0x1d, L"STRG",
|
||||
0x2a, L"UMSCHALT",
|
||||
0x2b, L"MOD 3 RECHTS",
|
||||
0x36, L"UMSCHALT RECHTS",
|
||||
0x37, L"* (ZEHNERTASTATUR)",
|
||||
0x38, L"ALT",
|
||||
0x39, L"LEER",
|
||||
0x3a, L"MOD 3 LINKS",
|
||||
0x3b, L"F1",
|
||||
0x3c, L"F2",
|
||||
0x3d, L"F3",
|
||||
0x3e, L"F4",
|
||||
0x3f, L"F5",
|
||||
0x40, L"F6",
|
||||
0x41, L"F7",
|
||||
0x42, L"F8",
|
||||
0x43, L"F9",
|
||||
0x44, L"F10",
|
||||
0x45, L"PAUSE",
|
||||
0x46, L"ROLLEN-FESTSTELL",
|
||||
0x47, L"7 (ZEHNERTASTATUR)",
|
||||
0x48, L"8 (ZEHNERTASTATUR)",
|
||||
0x49, L"9 (ZEHNERTASTATUR)",
|
||||
0x4a, L"- (ZEHNERTASTATUR)",
|
||||
0x4b, L"4 (ZEHNERTASTATUR)",
|
||||
0x4c, L"5 (ZEHNERTASTATUR)",
|
||||
0x4d, L"6 (ZEHNERTASTATUR)",
|
||||
0x4e, L"+ (ZEHNERTASTATUR)",
|
||||
0x4f, L"1 (ZEHNERTASTATUR)",
|
||||
0x50, L"2 (ZEHNERTASTATUR)",
|
||||
0x51, L"3 (ZEHNERTASTATUR)",
|
||||
0x52, L"0 (ZEHNERTASTATUR)",
|
||||
0x53, L"KOMMA (ZEHNERTASTATUR)",
|
||||
0x56, L"MOD 4 LINKS",
|
||||
0x57, L"F11",
|
||||
0x58, L"F12",
|
||||
0 , NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = {
|
||||
0x1c, L"EINGABE (ZEHNERTASTATUR)",
|
||||
0x1d, L"STRG-RECHTS",
|
||||
0x35, L"/ (ZEHNERTASTATUR)",
|
||||
0x37, L"DRUCK",
|
||||
0x38, L"MOD 4 RECHTS",
|
||||
0x45, L"NUM-FESTSTELL",
|
||||
0x46, L"UNTBR",
|
||||
0x47, L"POS1",
|
||||
0x48, L"NACH-OBEN",
|
||||
0x49, L"BILD-NACH-OBEN",
|
||||
0x4b, L"NACH-LINKS",
|
||||
0x4d, L"NACH-RECHTS",
|
||||
0x4f, L"ENDE",
|
||||
0x50, L"NACH-UNTEN",
|
||||
0x51, L"BILD-NACH-UNTEN",
|
||||
0x52, L"EINFG",
|
||||
0x53, L"ENTF",
|
||||
0x54, L"<00>",
|
||||
0x56, L"HILFE",
|
||||
0x5b, L"LINKE WINDOWS",
|
||||
0x5c, L"RECHTE WINDOWS",
|
||||
0x5d, L"ANWENDUNG",
|
||||
0 , NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA DEADKEY_LPWSTR aKeyNamesDead[] = {
|
||||
//Tottaste 1 (links neben 1)
|
||||
L"^" L"ZIRKUMFLEX",
|
||||
L"\x02C7" L"HATSCHEK",
|
||||
L"\x21bb" L"DREHEN",
|
||||
L"\x02d9" L"PUNKT_DARUEBER",
|
||||
L"\x02de" L"RHOTIC_HOOK",
|
||||
L"\x002E" L"PUNKT_DARUNTER",
|
||||
|
||||
//Tottaste 2 (links neben Rücktaste)
|
||||
L"\x0060" L"GRAVIS",
|
||||
L"\x00B8" L"CEDILLE",
|
||||
L"\x02DA" L"RING",
|
||||
L"\x00A8" L"TREMA",
|
||||
L"\x1ffe" L"SPIRITUS_ASPER",
|
||||
L"\x00AF" L"MAKRON",
|
||||
|
||||
//Tottaste 3 (rechts neben „ß“)
|
||||
L"\x00B4" L"AKUT",
|
||||
L"\x007E" L"TILDE",
|
||||
L"\x002D" L"QUERSTRICH",
|
||||
L"\x02DD" L"DOPPEL_AKUT",
|
||||
L"\x1fbf" L"SPIRITUS_LENIS",
|
||||
L"\x02D8" L"BREVE",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA KBDTABLES KbdTables = {
|
||||
// Modifier keys
|
||||
&CharModifiers,
|
||||
|
||||
|
||||
// Characters tables
|
||||
aVkToWcharTable,
|
||||
|
||||
|
||||
// Diakritika vorhanden
|
||||
aDeadKey,
|
||||
|
||||
|
||||
// Namen der Keys
|
||||
aKeyNames,
|
||||
aKeyNamesExt,
|
||||
aKeyNamesDead,
|
||||
|
||||
|
||||
// Scancodes zu Virtual Keys
|
||||
ausVK,
|
||||
sizeof(ausVK) / sizeof(ausVK[0]),
|
||||
aE0VscToVk,
|
||||
aE1VscToVk,
|
||||
|
||||
|
||||
// Kein Rechtes Alt daher AltGr auskommentiert
|
||||
// MAKELONG(KLLF_ALTGR, KBD_VERSION),
|
||||
0,
|
||||
|
||||
// keine Ligaturen
|
||||
0,
|
||||
0,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
PKBDTABLES KbdLayerDescriptor(VOID)
|
||||
{
|
||||
return &KbdTables;
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
LIBRARY KBDKOY
|
||||
|
||||
EXPORTS
|
||||
KbdLayerDescriptor @1
|
@ -1,126 +0,0 @@
|
||||
/****************************** Module Header ******************************\
|
||||
* Module Name: KBDKOY.H
|
||||
* KOY-Layout, basierend auf AdNW auf Neo2
|
||||
\***************************************************************************/
|
||||
// basiert auf den in der kbd.h definierten KBD-Type 4
|
||||
#define KBD_TYPE 4
|
||||
|
||||
// kbd.h einschließen
|
||||
#include "kbd.h"
|
||||
#include <dontuse.h>
|
||||
|
||||
|
||||
/* **************************************************************************************************************\
|
||||
*
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* |T01| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
* |T29¦T02¦T03¦T04¦T05¦T06¦T07¦T08¦T09¦T0A¦T0B¦T0C¦T0D¦ T0E | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
|
||||
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
|
||||
* |T0F¦T10¦T11¦T12¦T13¦T14¦T15¦T16¦T17¦T18¦T19¦T1A¦T1B¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
|
||||
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
|
||||
* | T3A ¦T1E¦T1F¦T20¦T21¦T22¦T23¦T24¦T25¦T26¦T27¦T28¦T2B¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
|
||||
* |---------------------------------------------------------| +----+ +---+---+---+---¦
|
||||
* |T2A ¦T56¦T2C¦T2D¦T2E¦T2F¦T30¦T31¦T32¦T33¦T34¦T35¦ T36 | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦X38 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
*
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* |Esc| |F1 ¦F2 ¦F3 ¦F4 | |F5 ¦F6 ¦F7 ¦F8 | |F9 ¦F10¦F11¦F12| |Druk¦Roll¦Paus|
|
||||
* +---+ +---------------+ +---------------+ +---------------+ +--------------+
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
* |T1 ¦1 ¦2 ¦3 ¦4 ¦5 ¦6 ¦7 ¦8 ¦9 ¦0 ¦- ¦T2 ¦Back | |Einf¦Pos1¦PgUp| ¦Num¦ / ¦ * ¦ - ¦
|
||||
* |---------------------------------------------------------| |--------------| +---+---+---+---¦
|
||||
* |Tab¦k ¦. ¦o ¦, ¦y ¦v ¦g ¦c ¦l ¦ß ¦z ¦T3 ¦ Ret | |Entf¦Ende¦PgDn| ¦ 7 ¦ 8 ¦ 9 ¦ ¦
|
||||
* |-----------------------------------------------------+ | +--------------+ +---+---+---¦ ¦
|
||||
* | M3 ¦h ¦a ¦e ¦i ¦u ¦d ¦t ¦r ¦n ¦s ¦f ¦M3 ¦ | ¦ 4 ¦ 5 ¦ 6 ¦ + ¦
|
||||
* |---------------------------------------------------------| +----+ +---+---+---+---¦
|
||||
* |Ums ¦M4 ¦x ¦q ¦ä ¦ü ¦ö ¦b ¦p ¦w ¦m ¦j ¦ Umsch | | Up | ¦ 1 ¦ 2 ¦ 3 ¦ ¦
|
||||
* |---------------------------------------------------------| +----+----+----+ +-------+---¦ ¦
|
||||
* | Str ¦ Fe ¦ Al ¦ Leerzeichen ¦ M4 ¦ Fe ¦ Me ¦ Str | |Left¦Down¦ Re.¦ ¦ 0 ¦ , ¦Ent¦
|
||||
* +---------------------------------------------------------+ +--------------+ +---------------+
|
||||
*
|
||||
\************************************************************************************************************** */
|
||||
|
||||
// Tastenumbelegung für KOY ; sonstige Tastenzuordnung siehe kbd.h
|
||||
#undef T0D
|
||||
#define T0D _EQ( OEM_2 ) // T2
|
||||
#undef T10
|
||||
#define T10 _EQ( 'K' )
|
||||
#undef T11
|
||||
#define T11 _EQ( OEM_PERIOD )
|
||||
#undef T12
|
||||
#define T12 _EQ( 'O' )
|
||||
#undef T13
|
||||
#define T13 _EQ( OEM_COMMA )
|
||||
#undef T14
|
||||
#define T14 _EQ( 'Y' )
|
||||
#undef T15
|
||||
#define T15 _EQ( 'V' )
|
||||
#undef T16
|
||||
#define T16 _EQ( 'G' )
|
||||
#undef T17
|
||||
#define T17 _EQ( 'C' )
|
||||
#undef T18
|
||||
#define T18 _EQ( 'L' )
|
||||
#undef T19
|
||||
#define T19 _EQ( OEM_3 ) // qwertz-ß
|
||||
#undef T1A
|
||||
#define T1A _EQ( 'Z' )
|
||||
#undef T1B
|
||||
#define T1B _EQ( OEM_4 ) // T3
|
||||
#undef T1E
|
||||
#define T1E _EQ( 'H' )
|
||||
#undef T1F
|
||||
#define T1F _EQ( 'A' )
|
||||
#undef T20
|
||||
#define T20 _EQ( 'E' )
|
||||
#undef T21
|
||||
#define T21 _EQ( 'I' )
|
||||
#undef T22
|
||||
#define T22 _EQ( 'U' )
|
||||
#undef T23
|
||||
#define T23 _EQ( 'D' )
|
||||
#undef T24
|
||||
#define T24 _EQ( 'T' )
|
||||
#undef T25
|
||||
#define T25 _EQ( 'R' )
|
||||
#undef T26
|
||||
#define T26 _EQ( 'N' )
|
||||
#undef T27
|
||||
#define T27 _EQ( 'S' )
|
||||
#undef T28
|
||||
#define T28 _EQ( 'F' )
|
||||
#undef T29
|
||||
#define T29 _EQ( OEM_1 ) // T1
|
||||
#undef T2B
|
||||
#define T2B _EQ( OEM_102 ) // Mod 3
|
||||
#undef T2C
|
||||
#define T2C _EQ( 'X' )
|
||||
#undef T2D
|
||||
#define T2D _EQ( 'Q' )
|
||||
#undef T2E
|
||||
#define T2E _EQ( OEM_7 ) // ä
|
||||
#undef T2F
|
||||
#define T2F _EQ( OEM_5 ) // ü
|
||||
#undef T30
|
||||
#define T30 _EQ( OEM_6 ) // ö
|
||||
#undef T31
|
||||
#define T31 _EQ( 'B' )
|
||||
#undef T32
|
||||
#define T32 _EQ( 'P' )
|
||||
#undef T33
|
||||
#define T33 _EQ( 'W' )
|
||||
#undef T34
|
||||
#define T34 _EQ( 'M' )
|
||||
#undef T35
|
||||
#define T35 _EQ( 'J' )
|
||||
#undef T3A
|
||||
#define T3A _EQ( OEM_102 ) // Mod 3
|
||||
#undef X38
|
||||
#define X38 _EQ( OEM_8 ) // Mod 4
|
||||
#undef T56
|
||||
#define T56 _EQ( OEM_8 ) // Mod 4
|
@ -1,35 +0,0 @@
|
||||
#include <windows.h>
|
||||
#define VER_USE_OTHER_MAJOR_MINOR_VER
|
||||
#define VER_PRODUCTMAJORVERSION 2
|
||||
#define VER_PRODUCTMINORVERSION 0
|
||||
#define BETA 1
|
||||
|
||||
|
||||
#include <ntverp.h>
|
||||
|
||||
#undef VER_PRODUCTBUILD
|
||||
#define VER_PRODUCTBUILD 1234
|
||||
|
||||
#undef VER_PRODUCTBUILD_QFE
|
||||
#define VER_PRODUCTBUILD_QFE 0
|
||||
|
||||
#undef VER_COMPANYNAME_STR
|
||||
#define VER_COMPANYNAME_STR "neo-layout.org"
|
||||
#undef VER_PRODUCTNAME_STR
|
||||
#define VER_PRODUCTNAME_STR "KOY Tastaturtreiber"
|
||||
#define VER_LEGALCOPYRIGHT_STR "https://neo-layout.org/Beitragen/Lizenzfragen/"
|
||||
#undef VER_LEGALTRADEMARKS_STR
|
||||
#define VER_LEGALTRADEMARKS_STR \
|
||||
"wiki.neo-layout.org/wiki/Lizenzfragen"
|
||||
|
||||
|
||||
#define VER_FILETYPE VFT_DLL
|
||||
#define VER_FILESUBTYPE VFT2_DRV_KEYBOARD
|
||||
#define VER_FILEDESCRIPTION_STR "Deutsch (KOY) Tastaturlayout"
|
||||
#define VER_INTERNALNAME_STR "kbdkoy"
|
||||
#define VER_ORIGINALFILENAME_STR "kbdkoy.dll"
|
||||
|
||||
#define VER_LANGNEUTRAL
|
||||
|
||||
|
||||
#include "common.ver"
|
@ -1,268 +0,0 @@
|
||||
/****************************************************************************\
|
||||
* Module Name: KBDMINE.C
|
||||
* Mine-Layout, basierend auf Neo2
|
||||
\****************************************************************************/
|
||||
|
||||
#include <windows.h>
|
||||
#include "kbd.h"
|
||||
#include "../kbd_mod.h"
|
||||
#include "../keysym4utf16.h"
|
||||
#include "kbdmine.h"
|
||||
#include "../kbd_base.c"
|
||||
|
||||
|
||||
/* **************************************************************************\
|
||||
* Spezielle Werte für den VK (Spalte 1)
|
||||
* 0xff - Tote Zeichen für obige Zeile
|
||||
* 0 - Beendet die gesamte Liste
|
||||
*
|
||||
* Spezielle Werte für Attributes (Spalte 2)
|
||||
* CAPLOK - CAPS-LOCK wirkt auf diese Taste wie SHIFT
|
||||
* KANALOK - Mod4-LOCK wirkt auf diese Taste wie Mod4
|
||||
*
|
||||
* Spezielle Werte für wch[*]
|
||||
* WCH_NONE - Keine Belegung
|
||||
* WCH_DEAD - Totes Zeichen
|
||||
* WCH_LGTR - Ligatur
|
||||
\************************************************************************** */
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS6 aVkToWch6[] = {
|
||||
// Reihenfolge der Ebene wie oben ( ALLOC_SECTION_LDATA MODIFIERS CharModifiers = { &aVkToBits[0],)… festgelegt
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU |
|
||||
// |===================|===========|=======================|=======================|===============|===================|===================|
|
||||
// Zeile 1
|
||||
{VK_OEM_1 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 1
|
||||
{0xff ,0 ,'^' ,caron ,totdreh ,abovedot ,rhotichook ,'.' },
|
||||
{'1' ,KANALOK ,'1' ,degree ,onesuperior ,ordfeminine ,onesubscript ,notsign },
|
||||
{'3' ,KANALOK ,'3' ,litersign ,threesuperior ,numerosign ,threesubscript ,logicaland },
|
||||
{'4' ,KANALOK ,'4' ,guillemotright ,guillemotright2 ,WCH_NONE ,femalesymbol ,uptack },
|
||||
{'5' ,KANALOK ,'5' ,guillemotleft ,guillemotleft2 ,periodcentered ,malesymbol ,measuredangle },
|
||||
{'7' ,KANALOK ,'7' ,EuroSign ,yen ,currency ,scriptkappa ,rightarrow },
|
||||
{'8' ,KANALOK ,'8' ,doublelowquotemark ,singlelowquotemark ,WCH_NONE ,leftanglebracket ,infinity },
|
||||
{'9' ,KANALOK ,'9' ,leftdoublequotemark ,leftsinglequotemark ,'/' ,rightanglebracket ,variation },
|
||||
{'0' ,KANALOK ,'0' ,rightdoublequotemark ,rightsinglequotemark ,'*' ,zerosubscript ,emptyset },
|
||||
{VK_OEM_MINUS ,KANALOK ,'-' ,emdash ,WCH_NONE ,'-' ,nobreakhyphen ,hyphen },
|
||||
{VK_OEM_2 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD }, //Tote Taste 2
|
||||
{0xff ,0 ,grave ,cedilla ,ringabove ,diaeresis ,greek_dasia ,macron },
|
||||
{VK_TAB ,0 ,'\t' ,'\t' ,WCH_DEAD ,'\t' ,'\t' ,'\t' },
|
||||
{0xff ,0 ,WCH_NONE ,WCH_NONE ,Multi_key ,WCH_NONE ,WCH_NONE ,WCH_NONE },
|
||||
{'L' ,CAPLOK | KANALOK ,'l' ,'L' ,'_' ,WCH_NONE ,Greek_lamda ,Greek_LAMDA },
|
||||
{'U' ,CAPLOK | KANALOK ,'u' ,'U' ,'[' ,WCH_NONE ,WCH_NONE ,includedin },
|
||||
{'A' ,CAPLOK | KANALOK ,'a' ,'A' ,']' ,WCH_NONE ,Greek_alpha ,forall },
|
||||
{'Q' ,CAPLOK | KANALOK ,'q' ,'Q' ,asciicircum ,WCH_NONE ,scriptphi ,doublestruck_q },
|
||||
{'W' ,CAPLOK | KANALOK ,'w' ,'W' ,'!' ,exclamdown ,Greek_omega ,Greek_OMEGA },
|
||||
{'B' ,CAPLOK | KANALOK ,'b' ,'B' ,'<' ,'7' ,Greek_beta ,doublearrowleft },
|
||||
{'D' ,CAPLOK | KANALOK ,'d' ,'D' ,'>' ,'8' ,Greek_delta ,Greek_DELTA },
|
||||
{'G' ,CAPLOK | KANALOK ,'g' ,'G' ,'=' ,'9' ,Greek_gamma ,Greek_GAMMA },
|
||||
{'Z' ,CAPLOK | KANALOK ,'z' ,'Z' ,'@' ,minussign ,Greek_zeta ,doublestruck_z },
|
||||
{'C' ,CAPLOK | KANALOK ,'c' ,'C' ,backslash ,WCH_NONE ,Greek_chi ,doublestruck_c },
|
||||
{'R' ,CAPLOK | KANALOK ,'r' ,'R' ,'/' ,WCH_NONE ,Greek_rho ,doublestruck_r },
|
||||
{'I' ,CAPLOK | KANALOK ,'i' ,'I' ,'{' ,WCH_NONE ,Greek_iota ,integral },
|
||||
{'E' ,CAPLOK | KANALOK ,'e' ,'E' ,'}' ,WCH_NONE ,Greek_epsilon ,thereexists },
|
||||
{'O' ,CAPLOK | KANALOK ,'o' ,'O' ,'*' ,WCH_NONE ,Greek_omicron ,elementof },
|
||||
{'M' ,CAPLOK | KANALOK ,'m' ,'M' ,'?' ,questiondown ,Greek_mu ,ifonlyif },
|
||||
{'N' ,CAPLOK | KANALOK ,'n' ,'N' ,'(' ,'4' ,Greek_nu ,doublestruck_n },
|
||||
{'T' ,CAPLOK | KANALOK ,'t' ,'T' ,')' ,'5' ,Greek_tau ,partialderivative },
|
||||
{'S' ,CAPLOK | KANALOK ,'s' ,'S' ,'-' ,'6' ,Greek_sigma ,Greek_SIGMA },
|
||||
{'H' ,CAPLOK | KANALOK ,'h' ,'H' ,':' ,',' ,Greek_psi ,Greek_PSI },
|
||||
{'V' ,CAPLOK | KANALOK ,'v' ,'V' ,'#' ,WCH_NONE ,WCH_NONE ,radical },
|
||||
{'X' ,CAPLOK | KANALOK ,'x' ,'X' ,'$' ,WCH_NONE ,Greek_xi ,Greek_XI },
|
||||
{VK_OEM_5 /*ü*/ ,CAPLOK | KANALOK ,udiaeresis ,Udiaeresis ,'|' ,WCH_NONE ,WCH_NONE ,union },
|
||||
{VK_OEM_7 /*ä*/ ,CAPLOK | KANALOK ,adiaeresis ,Adiaeresis ,'~' ,WCH_NONE ,Greek_eta ,alefsymbol },
|
||||
{VK_OEM_6 /*ö*/ ,CAPLOK | KANALOK ,odiaeresis ,Odiaeresis ,'`' ,WCH_NONE ,straightepsilon ,intersection },
|
||||
{'P' ,CAPLOK | KANALOK ,'p' ,'P' ,'+' ,':' ,Greek_pi ,Greek_PI },
|
||||
{'F' ,CAPLOK | KANALOK ,'f' ,'F' ,'%' ,'1' ,Greek_phi ,Greek_PHI },
|
||||
{VK_OEM_COMMA ,KANALOK ,',' ,endash ,quotedbl ,'2' ,scriptrho ,implies },
|
||||
{VK_OEM_PERIOD ,KANALOK ,'.' ,enfilledcircbullet ,apostrophe ,'3' ,scripttheta ,arrowfrombarright },
|
||||
{'K' ,CAPLOK | KANALOK ,'k' ,'K' ,';' ,'.' ,Greek_kappa ,multiply },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
|
||||
};
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS7 aVkToWch7[] = {
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control |
|
||||
// |===================|===========|===========|===========|===========|=======================|===============|===============|
|
||||
{VK_OEM_3 /*ß*/ ,CAPLOK | KANALOK ,ssharp ,Ssharp ,slong ,';' ,Greek_finalsmallsigma ,jot ,escape },
|
||||
{VK_OEM_4 ,0 ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,WCH_DEAD ,infoseparator3 }, //Tote Taste 3
|
||||
{0xff ,0 ,acute ,'~' ,'-' ,doubleacute,greek_psili ,breve ,WCH_NONE },
|
||||
{'Y' ,CAPLOK | KANALOK ,'y' ,'Y' ,'&' ,'+' ,Greek_upsilon ,nabla ,infoseparator4 },
|
||||
{VK_SPACE ,KANALOK ,space ,space ,space ,'0' ,nobreakspace ,nnobreakspace ,space },
|
||||
{VK_BACK ,0 ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,'\b' ,delete },
|
||||
{VK_ESCAPE ,0 ,escape ,escape ,escape ,escape ,escape ,escape ,escape },
|
||||
{VK_RETURN ,0 ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\r' ,'\n' },
|
||||
{VK_CANCEL ,0 ,endoftext ,endoftext ,WCH_NONE ,WCH_NONE ,WCH_NONE ,WCH_NONE ,endoftext },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }
|
||||
};
|
||||
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHARS8 aVkToWch8[] = {
|
||||
// | CapsLock | | SHIFT | NEU | KANA | NEU+Shift | KANA+NEU | Control | Control+Shift |
|
||||
// |===================|===========|===========|===========|===========|===================|===============|===========|===============|
|
||||
{'2' ,KANALOK ,'2' ,section ,twosuperior,masculine ,twosubscript ,logicalor ,WCH_NONE ,0x0000 },
|
||||
{'6' ,KANALOK ,'6' ,dollar ,cent ,sterling ,maleandfemalesign ,parallelto ,WCH_NONE ,infoseparator2 },
|
||||
{'J' ,CAPLOK | KANALOK ,'j' ,'J' ,ellipsis ,WCH_NONE ,Greek_theta ,Greek_THETA,WCH_NONE ,infoseparator1 },
|
||||
{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0}
|
||||
};
|
||||
|
||||
|
||||
// Hier müssen die verwendeten WChar_Tables vorkommen; Numpad MUSS letzte Zeile sein.
|
||||
// Die Funktion VkKeyScan() versucht, zu einem Zeichen den zugehörigen Virtual Key
|
||||
// und Modifier zu finden. Die Numpad-Definition muss zum Schluss kommen, damit Zeichen
|
||||
// wie '0' als vom Hauptfeld kommend interpretiert werden, falls dort vorhanden.
|
||||
static ALLOC_SECTION_LDATA VK_TO_WCHAR_TABLE aVkToWcharTable[] = {
|
||||
{ (PVK_TO_WCHARS1)aVkToWch6, 6, sizeof(aVkToWch6[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch7, 7, sizeof(aVkToWch7[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch8, 8, sizeof(aVkToWch8[0]) },
|
||||
{ (PVK_TO_WCHARS1)aVkToWch4, 4, sizeof(aVkToWch4[0]) },
|
||||
{ NULL, 0, 0 },
|
||||
};
|
||||
|
||||
|
||||
/* **************************************************************************\
|
||||
* aKeyNames[], aKeyNamesExt[] - Virtual Scancode to Key Name tables
|
||||
*
|
||||
* Table attributes: Ordered Scan (by scancode), null-terminated
|
||||
*
|
||||
* Nur für Tasten, die keine Zeichen erzeugen, Tasten die Zeichen erzeugen
|
||||
* werden danach benannt
|
||||
\************************************************************************** */
|
||||
|
||||
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNames[] = {
|
||||
0x01, L"ESC",
|
||||
0x0e, L"R\x00DC" L"CKTASTE",
|
||||
0x0f, L"TABULATOR",
|
||||
0x1c, L"EINGABE",
|
||||
0x1d, L"STRG",
|
||||
0x28, L"MOD 3 RECHTS",
|
||||
0x2a, L"UMSCHALT",
|
||||
0x36, L"UMSCHALT RECHTS",
|
||||
0x37, L"* (ZEHNERTASTATUR)",
|
||||
0x38, L"ALT",
|
||||
0x39, L"LEER",
|
||||
0x3a, L"MOD 3 LINKS",
|
||||
0x3b, L"F1",
|
||||
0x3c, L"F2",
|
||||
0x3d, L"F3",
|
||||
0x3e, L"F4",
|
||||
0x3f, L"F5",
|
||||
0x40, L"F6",
|
||||
0x41, L"F7",
|
||||
0x42, L"F8",
|
||||
0x43, L"F9",
|
||||
0x44, L"F10",
|
||||
0x45, L"PAUSE",
|
||||
0x46, L"ROLLEN-FESTSTELL",
|
||||
0x47, L"7 (ZEHNERTASTATUR)",
|
||||
0x48, L"8 (ZEHNERTASTATUR)",
|
||||
0x49, L"9 (ZEHNERTASTATUR)",
|
||||
0x4a, L"- (ZEHNERTASTATUR)",
|
||||
0x4b, L"4 (ZEHNERTASTATUR)",
|
||||
0x4c, L"5 (ZEHNERTASTATUR)",
|
||||
0x4d, L"6 (ZEHNERTASTATUR)",
|
||||
0x4e, L"+ (ZEHNERTASTATUR)",
|
||||
0x4f, L"1 (ZEHNERTASTATUR)",
|
||||
0x50, L"2 (ZEHNERTASTATUR)",
|
||||
0x51, L"3 (ZEHNERTASTATUR)",
|
||||
0x52, L"0 (ZEHNERTASTATUR)",
|
||||
0x53, L"KOMMA (ZEHNERTASTATUR)",
|
||||
0x56, L"MOD 4 LINKS",
|
||||
0x57, L"F11",
|
||||
0x58, L"F12",
|
||||
0 , NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA VSC_LPWSTR aKeyNamesExt[] = {
|
||||
0x1c, L"EINGABE (ZEHNERTASTATUR)",
|
||||
0x1d, L"STRG-RECHTS",
|
||||
0x35, L"/ (ZEHNERTASTATUR)",
|
||||
0x37, L"DRUCK",
|
||||
0x38, L"MOD 4 RECHTS",
|
||||
0x45, L"NUM-FESTSTELL",
|
||||
0x46, L"UNTBR",
|
||||
0x47, L"POS1",
|
||||
0x48, L"NACH-OBEN",
|
||||
0x49, L"BILD-NACH-OBEN",
|
||||
0x4b, L"NACH-LINKS",
|
||||
0x4d, L"NACH-RECHTS",
|
||||
0x4f, L"ENDE",
|
||||
0x50, L"NACH-UNTEN",
|
||||
0x51, L"BILD-NACH-UNTEN",
|
||||
0x52, L"EINFG",
|
||||
0x53, L"ENTF",
|
||||
0x54, L"<00>",
|
||||
0x56, L"HILFE",
|
||||
0x5b, L"LINKE WINDOWS",
|
||||
0x5c, L"RECHTE WINDOWS",
|
||||
0x5d, L"ANWENDUNG",
|
||||
0 , NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA DEADKEY_LPWSTR aKeyNamesDead[] = {
|
||||
//Tottaste 1 (links neben 1)
|
||||
L"^" L"ZIRKUMFLEX",
|
||||
L"\x02C7" L"HATSCHEK",
|
||||
L"\x21bb" L"DREHEN",
|
||||
L"\x02d9" L"PUNKT_DARUEBER",
|
||||
L"\x02de" L"RHOTIC_HOOK",
|
||||
L"\x002E" L"PUNKT_DARUNTER",
|
||||
|
||||
//Tottaste 2 (links neben Rücktaste)
|
||||
L"\x0060" L"GRAVIS",
|
||||
L"\x00B8" L"CEDILLE",
|
||||
L"\x02DA" L"RING",
|
||||
L"\x00A8" L"TREMA",
|
||||
L"\x1ffe" L"SPIRITUS_ASPER",
|
||||
L"\x00AF" L"MAKRON",
|
||||
|
||||
//Tottaste 3 (rechts neben „ß“)
|
||||
L"\x00B4" L"AKUT",
|
||||
L"\x007E" L"TILDE",
|
||||
L"\x002D" L"QUERSTRICH",
|
||||
L"\x02DD" L"DOPPEL_AKUT",
|
||||
L"\x1fbf" L"SPIRITUS_LENIS",
|
||||
L"\x02D8" L"BREVE",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
static ALLOC_SECTION_LDATA KBDTABLES KbdTables = {
|
||||
// Modifier keys
|
||||
&CharModifiers,
|
||||
|
||||
|
||||
// Characters tables
|
||||
aVkToWcharTable,
|
||||
|
||||
|
||||
// Diakritika vorhanden
|
||||
aDeadKey,
|
||||
|
||||
|
||||
// Namen der Keys
|
||||
aKeyNames,
|
||||
aKeyNamesExt,
|
||||
aKeyNamesDead,
|
||||
|
||||
|
||||
// Scancodes zu Virtual Keys
|
||||
ausVK,
|
||||
sizeof(ausVK) / sizeof(ausVK[0]),
|
||||
aE0VscToVk,
|
||||
aE1VscToVk,
|
||||
|
||||
|
||||
// Kein Rechtes Alt daher AltGr auskommentiert
|
||||
// MAKELONG(KLLF_ALTGR, KBD_VERSION),
|
||||
0,
|
||||
|
||||
// keine Ligaturen
|
||||
0,
|
||||
0,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
PKBDTABLES KbdLayerDescriptor(VOID)
|
||||
{
|
||||
return &KbdTables;
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
LIBRARY KBDMINE
|
||||
|
||||
EXPORTS
|
||||
KbdLayerDescriptor @1
|