/bin/ckbcomp-mini is in console-setup-mini 1.70ubuntu8.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | #!/bin/sh
ekmapdir=/usr/share/console-setup-mini
model=pc105
layout=''
variant=''
options=''
verbose_option=no
which () {
local IFS
IFS=:
for i in $PATH; do
if [ -x "$i/$1" ]; then
echo "$i/$1"
return 0
fi
done
return 1
}
while [ "$1" ]; do
case "$1" in
-I*)
ekmapdir=${1#-I}
;;
-model)
shift
model="$1"
;;
-layout)
shift
layout="$1"
;;
-variant)
shift
variant="$1"
;;
-option)
shift
options=$(echo $options $1 | sed 's/,/ /g')
;;
-charmap)
shift
;;
-\?|-help)
cat >&2 <<EOF
Usage: ckbcomp-mini [args] [<layout> [<variant> [<option> ... ]]]
Where legal args are:
-?,-help Print this message
-charmap <charmap> Ignored
-I<dir> Search for ekmaps in <dir>
-model <name> Specifies model used to choose component names
-layout <name> Specifies layout used to choose component names
-variant <name> Specifies layout variant used to choose component names
-option <name> Adds an option used to choose component names
EOF
exit 0
;;
-*)
echo "setupcon: Unrecognised option $1" >&2
exit 1
;;
*)
if [ -z "$layout" ]; then
layout="$1"
elif [ -z "$variant" ]; then
variant="$1"
else
options=$(echo $options $1 | sed 's/,/ /g')
fi
esac
shift
done
case "$model" in
amiga|ataritt|macintosh_old|pc105|sun4|sun5)
;;
*)
model=pc105
;;
esac
if [ -z "$layout" ]; then
layout=us
fi
ekmap=$ekmapdir/$model.ekmap.gz
if [ ! -f $ekmap ]; then
echo "ckbcomp-mini: $ekmap does not exist" >&2
exit 1
fi
layout=${layout#*,}
variant=${variant#*,}
if [ "$variant" ]; then
kmap="$layout:$variant"
else
kmap="$layout"
fi
ckbcomp_rec () {
local kmap
kmap="$1"
zcat $ekmap \
| grep "^$kmap::" \
| sed "s/^$kmap:://" \
| {
while read line; do
case "$line" in
?include*)
ckbcomp_rec "${line##* }"
;;
keycode*)
echo "$line"
;;
*)
;;
esac
done
}
}
echo 'keymaps 0-4,6,8,10,12,14'
ckbcomp_rec "$kmap"
for option in $options; do
zcat $ekmap \
| grep "^$option::" \
| sed "s/^$option:://"
done
echo 'strings as usual'
|