X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/b13bb406f89eaebf04c8fd8ffe69cde30d5aa0bd..20883523f524360de2c7758b02d15be980ed08c3:/keyboard/altgr/weur.eng.inc.pl?ds=inline diff --git a/keyboard/altgr/weur.eng.inc.pl b/keyboard/altgr/weur.eng.inc.pl index 6ef09eb..9315bf6 100644 --- a/keyboard/altgr/weur.eng.inc.pl +++ b/keyboard/altgr/weur.eng.inc.pl @@ -1,8 +1,28 @@ use utf8; use strict; use warnings; +no warnings 'qw'; use Shiar_Sheet::KeyboardChars 'kbmodes'; +my $greekc = '*'; +my %info = ( + mode => { + '' => 'altgr-shifted ⌥', + }, + version => '1.0', # upstream v2.0 2021/04/12 + title => 'Western European', + map => 'qwerty', # specific positioning + category => 'latin/thirdparty/xorg', + intro => join("\n", + 'Layout (available for major OSes)', + 'to provide all accented characters commonly used', + 'in 10 Western European languages available through one AltGr keystroke.', + ), + description => [ + "QWERTY for Western European languages", + ], +); + my %rows = ( '' => { '!' => "\N{COMBINING DOT ABOVE}", @@ -102,73 +122,47 @@ my %rows = ( }, '*' => { # dead_greek digraphs from data/xorg-compose - 'A' => 'Α', - 'a' => 'α', - 'B' => 'Β', - 'b' => 'β', - 'D' => 'Δ', - 'd' => 'δ', - 'E' => 'Ε', - 'e' => 'ε', - 'F' => 'Φ', - 'f' => 'φ', - 'G' => 'Γ', - 'g' => 'γ', - 'H' => 'Η', - 'h' => 'η', - 'I' => 'Ι', - 'i' => 'ι', - 'J' => 'Θ', - 'j' => 'θ', - 'K' => 'Κ', - 'k' => 'κ', - 'L' => 'Λ', - 'l' => 'λ', - 'M' => 'Μ', - 'm' => 'μ', - 'N' => 'Ν', - 'n' => 'ν', - 'O' => 'Ο', - 'o' => 'ο', - 'P' => 'Π', - 'p' => 'π', - 'Q' => 'Χ', - 'q' => 'χ', - 'R' => 'Ρ', - 'r' => 'ρ', - 'S' => 'Σ', - 's' => 'σ', - 'T' => 'Τ', - 't' => 'τ', - 'U' => 'Υ', - 'u' => 'υ', - 'W' => 'Ω', - 'w' => 'ω', - 'X' => 'Ξ', - 'x' => 'ξ', - 'Y' => 'Ψ', - 'y' => 'ψ', - 'Z' => 'Ζ', - 'z' => 'ζ', + qw( + a α b β d δ e ε f φ g γ h η i ι j θ k κ l λ m μ + n ν o ο p π q χ r ρ s σ t τ u υ w ω x ξ y ψ z ζ + ), '*' => 'µ', # MICRO SIGN at space and double mode }, ); -+{ - %{ kbmodes(\%rows) }, - mode => { - '' => 'altgr-shifted ⌥', - '*' => 'greek mode ⌥*', - }, - version => '1.0', # upstream v2.0 2021/04/12 - title => 'Western European', - category => 'latin/thirdparty/xorg', - intro => join("\n", - 'Layout (available for major OSes)', - 'to provide all accented characters commonly used', - 'in 10 Western European languages available through one AltGr keystroke.', - ), - description => [ - "QWERTY for Western European languages", - ], +our %get; +if ($get{map} and $get{map} eq 'dvorak') { + %info = (%info, + map => 'dvorak', + title => 'dWEURak', + intro => join("\n", + 'Layout for Western European languages', + 'repositioned for Dvorak letters instead of original Qwerty.', + ), + description => [ + "Dvorak for Western European languages", + ], + ); + $info{version} .= '.1'; + + my $dq = q{ + 'z ,l .d pj yk fq gt r, l' + dv hb s8 tw 8. + ;s qp jr ky xm bx m; wf vh zg + }; + my %dq = split //, $dq =~ s/\s//gr; # dvorak => qwerty key + + my %uc = (qw{ ' " , < . > ; : - _ 8 * }, map {lc, uc} 'a'..'z'); + $dq{ $uc{$_} } = $uc{ $dq{$_} } for keys %dq; # same shifted + + @{ $rows{''} }{keys %dq} = map { $rows{''}{$_} } values %dq; + %{ $rows{S} } = (%{ delete $rows{$greekc} }, + qw( q θ c χ j ϑ J ϴ v ϖ V ∇ ), + ); + $greekc = 'S'; } + +$info{mode}{$greekc} = "$rows{''}{$greekc} greek prefix ⌥$greekc"; +$_ = { (map {uc} %{$_}), %{$_} } for $rows{$greekc}; # uppercase greek + ++{ %{ kbmodes(\%rows) }, %info }