set_keyboard_layout revision 7c478bd95313f5f23a4c958a745db2134aa03244
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#! /usr/bin/sh
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# CDDL HEADER START
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# The contents of this file are subject to the terms of the
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# Common Development and Distribution License, Version 1.0 only
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# (the "License"). You may not use this file except in compliance
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence# with the License.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# or http://www.opensolaris.org/os/licensing.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# See the License for the specific language governing permissions
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# and limitations under the License.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# If applicable, add the following below this CDDL HEADER, with the
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein#
dfea6f0eaadb9287cfcdc1566ac2f997af1b075aBob Halley# CDDL HEADER END
dfea6f0eaadb9287cfcdc1566ac2f997af1b075aBob Halley#
3761c433912beabe43abeed2c3513b6201c59f64Mark Andrews#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# ident "%Z%%M% %I% %E% SMI"
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# Copyright (c) 2001 by Sun Microsystems, Inc.
b57bb9136af9f1bf84378f1f11f0efc55c52c628Mark Andrews# All rights reserved.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews#
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark AndrewsKBD_TYPE=`/usr/bin/kbd -t`
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews# (Really, should pick this up from the keyboard device node keyboard-type
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence# value, or the 1275 PC keyboard binding "layout" property.)
53bd3f325f898b6892742ce928da3daa02ba0eddDavid LawrenceKBD_LAYOUT_NAME="`/usr/sbin/eeprom kbd-type | /usr/bin/sed -n s/kbd-type=//p`"
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrencecase "$KBD_TYPE" in
53bd3f325f898b6892742ce928da3daa02ba0eddDavid Lawrence"USB keyboard")
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews case "$KBD_LAYOUT_NAME" in
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "") LAYOUT= ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Czech" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Danish" ) LAYOUT=6 ;;
ebfcb6cf66283096ebda1503b6cc042ce86b6bedBrian Wellington "Dutch" ) LAYOUT=18 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "French" ) LAYOUT=8 ;;
5fc7ba3e1ac5d72239e9971e0f469dd5796738f9Andreas Gustafsson "French-Canadian" ) LAYOUT= ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "German" ) LAYOUT=9 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Greek" ) LAYOUT= ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "Hungarian" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Italian" ) LAYOUT=14 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Japanese(106)" ) LAYOUT=15 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Japanese(J3100)" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Latvian" ) LAYOUT= ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "Lithuanian" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Polish" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Korean" ) LAYOUT=16 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Norwegian" ) LAYOUT=19 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Portuguese" ) LAYOUT=22 ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "Russian" ) LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Spanish" ) LAYOUT=25 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Swedish" ) LAYOUT=26 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Swiss-French" ) LAYOUT=27 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Swiss-German" ) LAYOUT=28 ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "Taiwanese" ) LAYOUT=30 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Turkish" ) LAYOUT= ;;
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews "UK-English" ) LAYOUT=32 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "US-English" ) LAYOUT=33 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "US-English(Microsoft-Natural)" ) LAYOUT=33 ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "US-English(104-Key)" ) LAYOUT=33 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews *) LAYOUT= ;;
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews esac
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews ;;
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews"PC")
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews case "$KBD_LAYOUT_NAME" in
94a3bcd132e515b4baa0884ba9dd0f361d2e17bcMark Andrews "") LAYOUT= ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Czech" ) LAYOUT=53 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Danish" ) LAYOUT=36 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "Dutch" ) LAYOUT=39 ;;
3d5cad69ec20157912e95cf3b79316dfb0a314f3Mark Andrews "French" ) LAYOUT=35 ;;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews "French-Canadian" ) LAYOUT=50 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "German" ) LAYOUT=37 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Greek" ) LAYOUT=57 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Hungarian" ) LAYOUT=51 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Italian" ) LAYOUT=38 ;;
d981ca645597116d227a48bf37cc5edc061c854dBob Halley "Japanese(106)" ) LAYOUT=49 ;;
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley "Japanese(J3100)" ) LAYOUT=34 ;;
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley "Latvian" ) LAYOUT=55 ;;
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley "Lithuanian" ) LAYOUT=59 ;;
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley "Polish" ) LAYOUT=52 ;;
477437f48d24f46c2c2f5271c53e759f0b4ca1caBob Halley "Korean" ) LAYOUT=47 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Norwegian" ) LAYOUT=40 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Portuguese" ) LAYOUT=41 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Russian" ) LAYOUT=54 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Spanish" ) LAYOUT=42 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Swedish" ) LAYOUT=43 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Swiss-French" ) LAYOUT=44 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Swiss-German" ) LAYOUT=45 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Taiwanese" ) LAYOUT=48 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "Turkish" ) LAYOUT=56 ;;
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews "UK-English" ) LAYOUT=46 ;;
76c8294c81fb48b1da6e1fc5b83322a4cedb8e58Andreas Gustafsson "US-English" ) LAYOUT=1 ;;
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff "US-English(Microsoft-Natural)" ) LAYOUT=1001 ;;
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews "US-English(104-Key)" ) LAYOUT=1001 ;;
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews *) LAYOUT=0 ;;
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff esac
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff ;;
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graffesac
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrewsif test -n "$LAYOUT"
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrewsthen
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews # Set the layout for a non-self-ID keyboard.
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews # loadkeys -s is a project private interface, and subject to change
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews # without notice.
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrews /usr/bin/loadkeys -s $LAYOUT
28b863e609ff2d97b78663b46894494cfa2ea411Mark Andrewsfi
987effb43724fc55747b803dd9ab80a5a7c9c518Michael Graff