set_keyboard_layout revision f95bda13672da09ae973b76683e47b094188903a
7a8401ce858002b67e8f4198fde45a1562696ccbChristian Maeder#! /usr/bin/sh
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# CDDL HEADER START
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# The contents of this file are subject to the terms of the
b4fbc96e05117839ca409f5f20f97b3ac872d1edTill Mossakowski# Common Development and Distribution License, Version 1.0 only
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# (the "License"). You may not use this file except in compliance
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# with the License.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
f3a94a197960e548ecd6520bb768cb0d547457bbChristian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# or http://www.opensolaris.org/os/licensing.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# See the License for the specific language governing permissions
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# and limitations under the License.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# When distributing Covered Code, include this CDDL HEADER in each
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# If applicable, add the following below this CDDL HEADER, with the
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# fields enclosed by brackets "[]" replaced with your own identifying
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# information: Portions Copyright [yyyy] [name of copyright owner]
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# CDDL HEADER END
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#pragma ident "%Z%%M% %I% %E% SMI"
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski#
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# Use is subject to license terms.
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski#
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian MaederKBD_TYPE=`/usr/bin/kbd -t`
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski# (Really, should pick this up from the keyboard device node keyboard-type
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder# value, or the 1275 PC keyboard binding "layout" property.)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian MaederKBD_LAYOUT_NAME="`/usr/sbin/eeprom kbd-type | /usr/bin/sed -n s/kbd-type=//p`"
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maedercase "$KBD_TYPE" in
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder"USB keyboard")
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder case "$KBD_LAYOUT_NAME" in
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "") LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Belgian" ) LAYOUT=2 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Czech" ) LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Danish" ) LAYOUT=6 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Dutch" ) LAYOUT=18 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Finnish" ) LAYOUT=7 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "French" ) LAYOUT=8 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "French-Canadian" ) LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "German" ) LAYOUT=9 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Greek" ) LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Hungarian" ) LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Italian" ) LAYOUT=14 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Japanese(106)" ) LAYOUT=15 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Japanese(J3100)" ) LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Latvian" ) LAYOUT= ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Lithuanian" ) LAYOUT= ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Polish" ) LAYOUT= ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Korean" ) LAYOUT=16 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Norwegian" ) LAYOUT=19 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Portuguese" ) LAYOUT=22 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Russian" ) LAYOUT=23 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Spanish" ) LAYOUT=25 ;;
4f2f83eb482b9da293cfed2c4e10d9411474d52aChristian Maeder "Swedish" ) LAYOUT=26 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Swiss-French" ) LAYOUT=27 ;;
4f2f83eb482b9da293cfed2c4e10d9411474d52aChristian Maeder "Swiss-German" ) LAYOUT=28 ;;
4f2f83eb482b9da293cfed2c4e10d9411474d52aChristian Maeder "Taiwanese" ) LAYOUT=30 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Turkish" ) LAYOUT= ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "UK-English" ) LAYOUT=32 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "US-English" ) LAYOUT=33 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "US-English(Microsoft-Natural)" ) LAYOUT=33 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "US-English(104-Key)" ) LAYOUT=33 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Slovenian" ) LAYOUT=256 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Slovakian" ) LAYOUT=24 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Serbia-And-Montenegro") LAYOUT=257 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Icelandic" ) LAYOUT=258 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Croatian" ) LAYOUT=259 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Bulgarian" ) LAYOUT=260 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "Belarusian" ) LAYOUT=261 ;;
dc75e26ed536ca6bda0fe4e29c3e0792b116af04Till Mossakowski "Malta_US" ) LAYOUT=262 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Malta_UK" ) LAYOUT=263 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Albanian" ) LAYOUT=264 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski *) LAYOUT= ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski esac
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder"PC")
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder case "$KBD_LAYOUT_NAME" in
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "") LAYOUT= ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Belgian" ) LAYOUT=2 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Czech" ) LAYOUT=53 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Danish" ) LAYOUT=36 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Dutch" ) LAYOUT=39 ;;
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder "Finnish" ) LAYOUT=7 ;;
4bc517a4dd3ac82361154d0c847cb33ad279cd0dTill Mossakowski "French" ) LAYOUT=35 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "French-Canadian" ) LAYOUT=50 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "German" ) LAYOUT=37 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "Greek" ) LAYOUT=57 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Hungarian" ) LAYOUT=51 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Italian" ) LAYOUT=38 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Japanese(106)" ) LAYOUT=49 ;;
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder "Japanese(J3100)" ) LAYOUT=34 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Latvian" ) LAYOUT=55 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Lithuanian" ) LAYOUT=59 ;;
ab419eb9bb19c32515fb35793f1192a86c74712eTill Mossakowski "Polish" ) LAYOUT=52 ;;
c4e3cade80a00690374e97f050fb5ade9d292850Till Mossakowski "Korean" ) LAYOUT=47 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "Norwegian" ) LAYOUT=40 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "Portuguese" ) LAYOUT=41 ;;
88c66e48620750c42b94db9feb01b42ae23dba97Till Mossakowski "Russian" ) LAYOUT=54 ;;
"Spanish" ) LAYOUT=42 ;;
"Swedish" ) LAYOUT=43 ;;
"Swiss-French" ) LAYOUT=44 ;;
"Swiss-German" ) LAYOUT=45 ;;
"Taiwanese" ) LAYOUT=48 ;;
"Turkish" ) LAYOUT=56 ;;
"UK-English" ) LAYOUT=46 ;;
"US-English" ) LAYOUT=1 ;;
"US-English(Microsoft-Natural)" ) LAYOUT=1001 ;;
"US-English(104-Key)" ) LAYOUT=1001 ;;
*) LAYOUT=0 ;;
esac
;;
esac
if test -n "$LAYOUT"
then
# Set the layout for a non-self-ID keyboard.
# loadkeys -s is a project private interface, and subject to change
# without notice.
/usr/bin/loadkeys -s $LAYOUT
fi