summaryrefslogtreecommitdiffstats
path: root/plum-tastatur/enable-plum
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xplum-tastatur/enable-plum236
1 files changed, 0 insertions, 236 deletions
diff --git a/plum-tastatur/enable-plum b/plum-tastatur/enable-plum
deleted file mode 100755
index 5ca348b..0000000
--- a/plum-tastatur/enable-plum
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/perl -w
-
-# Enable PLUM to work as a standard pc keyboard
-# Written 2008 by Hans-Christoph Wirth <hcw@at@gmx@dot@de>
-# $Revision$
-# $Date$
-#
-# This command modifies any current X keymap (which is assumed to be
-# designed for use with an ordinary 105 key PC keyboard) so that it
-# can be used (almost) identically on a connected PLUM keyboard (see
-# www.plum.bz for information on that matrix-like keyboard).
-#
-# Usage:
-#
-# 1. Setup your keyboard layout for your standard keyboard using xmodmap.
-# 2. Read the warning below and prepare a recovery mechanism.
-# 3. Run this script without any parameters.
-#
-# Run with option "-n" to print the commands without executing them.
-#
-# Warning:
-#
-# There is no reliable way (that I am aware of) to determine the type
-# of the currently active keyboard. Hence we cannot prevent that you
-# call this script twice, which will instantaneously switch keyboard
-# input into a completely useless state. To recover from that, you
-# should prepare your desktop to run a recovery command (like 'xmodmap
-# $HOME/your-standard.modmap') on a mouse click.
-#
-######################################################################
-
-$XMODMAP = "/usr/bin/xmodmap";
-
-#
-# Options
-#
-$opt = shift || "";
-$noexec = $opt eq "-n" ? 1 : 0;
-$P = $noexec ? "! " : "";
-
-#
-# Read transformation matrix
-#
-while (<DATA>) {
- ($plum, $pc) = split;
- $plum[$pc] = 0+ $plum;
-}
-
-#
-# Read and parse existing map
-#
-print "${P}reading existing keymap\n";
-
-open (IN, "$XMODMAP -pke |") or die "read keyboard mapping failed\n";
-while (<IN>) {
- /^keycode\s+(\d+)\s+=\s+(.*)$/o or die "error: malformed line: $_\n";
-
- if ($plum[$1]) {
- push @clearkeys, "keycode $plum[$1] =\n";
- push @setkeys, "keycode $plum[$1] = $2\n";
-
- push @report_keys, (split( ' ', $2, 2 ))[0];
- }
-}
-close (IN);
-
-#
-# Read and parse existing modifiers
-#
-print "${P}reading existing modifiers\n";
-
-open (IN, "$XMODMAP -pm |") or die "read modifier list failed\n";
-while (<IN>) {
- unless (/^(shift|lock|control|mod\d)\s*(.*)$/) {
- next;
- }
-
- ($mod, $info) = ($1, $2);
-
- @infos = ();
- for (split( /,/, $info )) {
- s/\(\S*\)//;
- next if /^\s*$/;
- push @infos, $_;
- }
-
- push @clearmodifiers, "clear $mod\n";
- push @report_clearmodifiers, "$mod ";
-
- if (@infos) {
- push @setmodifiers, "add $mod = @infos\n";
- push @report_setmodifiers, "$mod ";
- }
-}
-close (IN);
-
-#
-# Now perform the changes using two external calls.
-#
-
-print "${P}clearing " . @report_keys . " keys... @report_keys\n";
-print "${P}clearing " . @report_clearmodifiers .
- " modifiers... @report_clearmodifiers\n";
-
-if ($noexec) {
- open (OUT, "| cat") or die "clear map failed\n";
-} else {
- open (OUT, "| $XMODMAP -") or die "clear map failed\n";
-}
-
-print OUT @clearkeys;
-print OUT @clearmodifiers;
-
-close (OUT) or die "clear map failed\n";
-
-print "${P}setting all keys and modifiers @report_setmodifiers\n";
-
-if ($noexec) {
- open (OUT, "| cat") or die "set new map failed\n";
-} else {
- open (OUT, "| $XMODMAP -") or die "set new map failed\n";
-}
-
-print OUT @setkeys;
-print OUT @setmodifiers;
-
-close (OUT) or die "set new map failed\n";
-
-# The data section lists the plum keyboard scancodes ordered from left
-# to right and top to bottom. Each line describes one key position in
-# the form 'plum code' 'pc code'. Since the keyboard is short of a
-# few keys we have to move some keys in the periphery: this affects in
-# particular
-#
-# - the key to the left of '1' moves down next to right shift
-# - the key to the right of left shift moves down; there is no longer
-# a left windows key
-# - return key moves down to space key, obviously
-#
-# As an example, the standard German 105 key layout is mapped as
-# follows:
-#
-#
-# regular pc layout
-#
-# esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
-# ^ 1 2 3 4 5 6 7 8 9 0 ß ' -bsp-
-# tab q w e r t z u i o p ü + ret
-# lock a s d f g h j k l ö ä #
-# shf < y x c v b n m , . - ---shf---
-# ctr win alt ---------spc--------- agr win men ctr
-#
-#
-# plum mapping
-#
-# esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
-# 1 2 3 4 5 6 7 8 9 0 ß ' bsp
-# tab q w e r t z u i o p ü +
-# lck a s d f g h j k l ö ä #
-# shf y x c v b n m , . - shf ^
-# ctr < alt ---ret--- ---spc--- agr win ctr
-
-__DATA__
-9 9
-67 67
-68 68
-69 69
-70 70
-71 71
-72 72
-73 73
-74 74
-75 75
-76 76
-95 95
-96 96
-49 10
-10 11
-11 12
-12 13
-13 14
-14 15
-15 16
-16 17
-17 18
-18 19
-19 20
-20 21
-21 22
-47 23
-33 24
-46 25
-30 26
-58 27
-23 28
-22 29
-54 30
-41 31
-42 32
-24 33
-48 34
-51 35
-36 36
-50 66
-27 38
-26 39
-38 40
-40 41
-32 42
-57 43
-28 44
-43 45
-31 46
-39 47
-62 48
-61 51
-66 50
-45 52
-44 53
-55 54
-56 55
-59 56
-60 57
-25 58
-53 59
-29 60
-52 61
-34 62
-35 49
-37 37
-115 94
-64 64
-65 65
-113 113
-116 116
-109 109