// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $

//
//  Rules for resolving XKB components for use with XFree86
//  Copyright 1996 by Joseph Moss
//
//  2002 Modifier: Ivan Pascal      The XFree86 Project
//  $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
//
// If you want non-latin layouts implicitly include the en_US layout
// uncomment lines below
//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
//              ru scc sy syr tel th tj tam ua uz

// PC models
! $pcmodels = pc101 pc102 pc104 pc105

// PC geometries - they have special geometry but symbols are mostly pc105
! $pcgeometries = abnt2 jp106 kr106

! $azerty = be fr
! $qwertz = al cz de hr hu ro si sk 

// all layouts with 3rd and 4th groups
! $threelevellayouts = al az \
              be br bt \
              ca ch cs cz \
              de dk \
              ee es \
              fi fo fr \
              gb gr \
              hu \
              ie ir is it \
              kg \
              latam \
              lk lt \
              mn mt \
              nl no \
              pl pt \
              ro \
              se sk \
              tr \
              us \
              vn \
              za

! model		=	keycodes
  *		=	evdev

! layout[1]	=	keycodes
  $azerty       =       +aliases(azerty)
  $qwertz       =       +aliases(qwertz)
  *             =       +aliases(qwerty)

! layout	=	keycodes
  $azerty       =       +aliases(azerty)
  $qwertz       =       +aliases(qwertz)
  *             =       +aliases(qwerty)

! model		=	geometry
 $pcmodels	=	pc(%m)
 $pcgeometries	=	pc(%m)
  *		=       pc(pc104)

! model		layout				=	symbols
  abnt2		br			=	pc+br
  nokiarx44     *                       =       nokia_vndr/rx-44(%l)
  nokiasu8w     *                       =       nokia_vndr/su-8w(%l)
  *		jp			=	pc+jp(latin)+jp:2
  *	   	$nonlatin		=	pc+us+%l%(v):2
  *		*			=	pc+%l%(v)

! model		layout[1]			=	symbols
  *		*			=	pc+%l[1]%(v[1])

! layout[2]	=	symbols
  *		=	+%l[2]%(v[2]):2

! layout[3]	=	symbols
  *		=	+%l[3]%(v[3]):3

! layout[4]	=	symbols
  *		=	+%l[4]%(v[4]):4

! model		layout		=	compat
  *		jp		=	complete+japan
  *		*		=	complete

! model		layout[1]	=	compat
  *		*		=	complete

! model		=	types
  *		=	complete

! layout	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)

! layout[1]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1

! layout[2]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2

! layout[3]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3

! option	=	symbols
  altwin:menu		=	+altwin(menu)
  altwin:meta_alt	=	+altwin(meta_alt)
  altwin:meta_win	=	+altwin(meta_win)
  altwin:left_meta_win	=	+altwin(left_meta_win)
  altwin:super_win	=	+altwin(super_win)
  altwin:hyper_win	=	+altwin(hyper_win)
  altwin:alt_super_win	=	+altwin(alt_super_win)
  altwin:swap_lalt_lwin	=	+altwin(swap_lalt_lwin)
  grp:switch		=	+group(switch)
  grp:lswitch		=	+group(lswitch)
  grp:win_switch	=	+group(win_switch)
  grp:lwin_switch	=	+group(lwin_switch)
  grp:rwin_switch	=	+group(rwin_switch)
  grp:toggle		=	+group(toggle)
  grp:shifts_toggle	=	+group(shifts_toggle)
  grp:ctrls_toggle	=	+group(ctrls_toggle)
  grp:alts_toggle	=	+group(alts_toggle)
  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)
  grp:caps_toggle	=	+group(caps_toggle)
  grp:shift_caps_toggle	=	+group(shift_caps_toggle)
  grp:alt_caps_toggle   =       +group(alt_caps_toggle)
  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)
  grp:alt_shift_toggle	=	+group(alt_shift_toggle)
  grp:menu_toggle	=	+group(menu_toggle)
  grp:lwin_toggle	=	+group(lwin_toggle)
  grp:rwin_toggle	=	+group(rwin_toggle)
  grp:lshift_toggle	=	+group(lshift_toggle)
  grp:rshift_toggle	=	+group(rshift_toggle)
  grp:lctrl_toggle	=	+group(lctrl_toggle)
  grp:rctrl_toggle	=	+group(rctrl_toggle)
  grp:lalt_toggle	=	+group(lalt_toggle)
  lv3:switch		=	+level3(switch)
  lv3:ralt_switch	=	+level3(ralt_switch)
  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)
  lv3:lalt_switch	=	+level3(lalt_switch)
  lv3:alt_switch	=	+level3(alt_switch)
  lv3:menu_switch	=	+level3(menu_switch)
  lv3:win_switch	=	+level3(win_switch)
  lv3:lwin_switch	=	+level3(lwin_switch)
  lv3:rwin_switch	=	+level3(rwin_switch)
  caps:capslock		=	+capslock(capslock)
  caps:shiftlock	=	+capslock(shiftlock)
  caps:grouplock	=	+capslock(grouplock)
  ctrl:nocaps		=	+ctrl(nocaps)
  ctrl:swapcaps		=	+ctrl(swapcaps)
  ctrl:ctrl_ac		=	+ctrl(ctrl_ac)
  ctrl:ctrl_aa		=	+ctrl(ctrl_aa)
  ctrl:ctrl_ra		=	+ctrl(ctrl_ra)
  compose:ralt		=	+compose(ralt)
  compose:lwin		=	+compose(lwin)
  compose:rwin		=	+compose(rwin)
  compose:menu		=	+compose(menu)
  compose:rctrl		=	+compose(rctrl)
  compose:caps      =   +compose(caps)
  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)
  nbsp:none             =	+nbsp(none)
  nbsp:level2           =	+nbsp(level2)
  nbsp:level3           =	+nbsp(level3)
  nbsp:level4           =	+nbsp(level4)

! option	=	compat
  japan:kana_lock	=	+japan(kana_lock)


! option	=	types
  caps:internal			=	+caps(internal)
  caps:internal_nocancel	=	+caps(internal_nocancel)
  caps:shift			=	+caps(shift)
  caps:shift_nocancel		=	+caps(shift_nocancel)
