aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--X11/xtrans/autogen.sh4
-rw-r--r--X11/xtrans/configure.ac1
-rw-r--r--fontconfig/configure.ac2
-rw-r--r--fontconfig/doc/fontconfig-devel.sgml3
-rw-r--r--fontconfig/doc/fontconfig-user.sgml2
-rw-r--r--fontconfig/fontconfig/fontconfig.h2
-rw-r--r--fontconfig/src/fccfg.c7
-rw-r--r--fontconfig/src/fccompat.c6
-rw-r--r--fontconfig/src/fcdefault.c85
-rw-r--r--fontconfig/src/fcint.h3
-rw-r--r--fontconfig/src/fcobjs.h2
-rw-r--r--gl/autogen.sh4
-rw-r--r--gl/configure.ac1
-rw-r--r--libX11/autogen.sh4
-rw-r--r--libX11/configure.ac1
-rw-r--r--libXau/autogen.sh4
-rw-r--r--libXau/configure.ac1
-rw-r--r--libXext/autogen.sh4
-rw-r--r--libXext/configure.ac1
-rw-r--r--libXft/autogen.sh4
-rw-r--r--libXft/configure.ac1
-rw-r--r--libXinerama/autogen.sh4
-rw-r--r--libXinerama/configure.ac1
-rw-r--r--libXmu/autogen.sh4
-rw-r--r--libXmu/configure.ac1
-rw-r--r--libfontenc/autogen.sh4
-rw-r--r--libfontenc/configure.ac1
-rw-r--r--mesalib/docs/vmware-guest.html7
-rw-r--r--mesalib/include/GL/internal/dri_interface.h3
-rw-r--r--mesalib/src/gallium/auxiliary/Makefile.am6
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_pack_color.h1
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_simple_shaders.c34
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_simple_shaders.h4
-rw-r--r--mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml21
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_API.xml6
-rw-r--r--mesalib/src/mapi/glapi/gen/gl_genexec.py1
-rw-r--r--mesalib/src/mesa/drivers/common/driverfuncs.c1
-rw-r--r--mesalib/src/mesa/drivers/common/meta.c468
-rw-r--r--mesalib/src/mesa/drivers/common/meta.h1
-rw-r--r--mesalib/src/mesa/drivers/dri/common/dri_util.c1
-rw-r--r--mesalib/src/mesa/drivers/dri/common/drisw_util.c1
-rw-r--r--mesalib/src/mesa/main/bufferobj.c53
-rw-r--r--mesalib/src/mesa/main/buffers.c101
-rw-r--r--mesalib/src/mesa/main/dd.h16
-rw-r--r--mesalib/src/mesa/main/extensions.c1
-rw-r--r--mesalib/src/mesa/main/fbobject.c244
-rw-r--r--mesalib/src/mesa/main/formatquery.c147
-rw-r--r--mesalib/src/mesa/main/formatquery.h35
-rw-r--r--mesalib/src/mesa/main/framebuffer.c21
-rw-r--r--mesalib/src/mesa/main/framebuffer.h5
-rw-r--r--mesalib/src/mesa/main/glformats.c459
-rw-r--r--mesalib/src/mesa/main/glformats.h5
-rw-r--r--mesalib/src/mesa/main/mtypes.h2
-rw-r--r--mesalib/src/mesa/main/pack.c12
-rw-r--r--mesalib/src/mesa/main/queryobj.c28
-rw-r--r--mesalib/src/mesa/main/readpix.c22
-rw-r--r--mesalib/src/mesa/main/teximage.c55
-rw-r--r--mesalib/src/mesa/main/texparam.c13
-rw-r--r--mesalib/src/mesa/main/varray.c14
-rw-r--r--mesalib/src/mesa/sources.mak1
-rw-r--r--mesalib/src/mesa/state_tracker/st_atom_shader.c3
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_clear.c199
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_fbo.c4
-rw-r--r--mesalib/src/mesa/state_tracker/st_context.h1
-rw-r--r--mesalib/src/mesa/swrast/s_blit.c561
-rw-r--r--xorg-server/xkeyboard-config/configure.ac2
-rw-r--r--xorg-server/xkeyboard-config/geometry/sun2319
-rw-r--r--xorg-server/xkeyboard-config/keycodes/sun778
-rw-r--r--xorg-server/xkeyboard-config/rules/base.extras.xml.in398
-rw-r--r--xorg-server/xkeyboard-config/rules/base.lists.part20
-rw-r--r--xorg-server/xkeyboard-config/rules/base.m_g.part9
-rw-r--r--xorg-server/xkeyboard-config/rules/base.m_k.part6
-rw-r--r--xorg-server/xkeyboard-config/rules/base.m_s.part2
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml1_s.part3
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml2_s.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml3_s.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml4_s.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml_s.part13
-rw-r--r--xorg-server/xkeyboard-config/rules/base.mlv_s.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.o_s.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in72
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part1
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/base.lv_c.part1
-rw-r--r--xorg-server/xkeyboard-config/symbols/ara7
-rw-r--r--xorg-server/xkeyboard-config/symbols/be7
-rw-r--r--xorg-server/xkeyboard-config/symbols/br7
-rw-r--r--xorg-server/xkeyboard-config/symbols/ca5
-rw-r--r--xorg-server/xkeyboard-config/symbols/ch12
-rw-r--r--xorg-server/xkeyboard-config/symbols/cz7
-rw-r--r--xorg-server/xkeyboard-config/symbols/de5
-rw-r--r--xorg-server/xkeyboard-config/symbols/dk7
-rw-r--r--xorg-server/xkeyboard-config/symbols/ee7
-rw-r--r--xorg-server/xkeyboard-config/symbols/es7
-rw-r--r--xorg-server/xkeyboard-config/symbols/fi7
-rw-r--r--xorg-server/xkeyboard-config/symbols/fr7
-rw-r--r--xorg-server/xkeyboard-config/symbols/gb7
-rw-r--r--xorg-server/xkeyboard-config/symbols/gr7
-rw-r--r--xorg-server/xkeyboard-config/symbols/in41
-rw-r--r--xorg-server/xkeyboard-config/symbols/it7
-rw-r--r--xorg-server/xkeyboard-config/symbols/jp27
-rw-r--r--xorg-server/xkeyboard-config/symbols/kr7
-rw-r--r--xorg-server/xkeyboard-config/symbols/lt5
-rw-r--r--xorg-server/xkeyboard-config/symbols/lv5
-rw-r--r--xorg-server/xkeyboard-config/symbols/nl7
-rw-r--r--xorg-server/xkeyboard-config/symbols/no7
-rw-r--r--xorg-server/xkeyboard-config/symbols/pl5
-rw-r--r--xorg-server/xkeyboard-config/symbols/pt7
-rw-r--r--xorg-server/xkeyboard-config/symbols/ro5
-rw-r--r--xorg-server/xkeyboard-config/symbols/ru5
-rw-r--r--xorg-server/xkeyboard-config/symbols/se7
-rw-r--r--xorg-server/xkeyboard-config/symbols/sk7
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/Makefile.am2
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ara171
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/be83
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/br72
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ca89
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ch95
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/cz56
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/de159
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/dk97
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ee48
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/es120
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/fi61
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/fr131
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/gb77
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/gr73
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/it103
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/jp883
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/kr84
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/lt63
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/lv104
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/nl86
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/no106
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/pl82
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/pt111
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ro62
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ru155
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/se252
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/sk46
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/solaris235
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/tr95
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/tuv261
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/tw60
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/ua72
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/us445
-rw-r--r--xorg-server/xkeyboard-config/symbols/tr7
-rw-r--r--xorg-server/xkeyboard-config/symbols/tw7
-rw-r--r--xorg-server/xkeyboard-config/symbols/ua7
-rw-r--r--xorg-server/xkeyboard-config/symbols/us5
152 files changed, 4571 insertions, 6681 deletions
diff --git a/X11/xtrans/autogen.sh b/X11/xtrans/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/X11/xtrans/autogen.sh
+++ b/X11/xtrans/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/X11/xtrans/configure.ac b/X11/xtrans/configure.ac
index 3d11c34fa..cc3c006ae 100644
--- a/X11/xtrans/configure.ac
+++ b/X11/xtrans/configure.ac
@@ -27,7 +27,6 @@ AC_CONFIG_SRCDIR([Makefile.am])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Require xorg-macros minimum of 1.12 for DocBook external references
m4_ifndef([XORG_MACROS_VERSION],
diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac
index 06ac8a2e7..a520ae70d 100644
--- a/fontconfig/configure.ac
+++ b/fontconfig/configure.ac
@@ -141,7 +141,7 @@ AC_TYPE_PID_T
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp mkostemp _mktemp_s strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp mkostemp _mktemp_s strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror readlink regexec regfree fstatvfs fstatfs lstat])
dnl AC_CHECK_FUNCS doesn't check for header files.
dnl posix_fadvise() may be not available in older libc.
diff --git a/fontconfig/doc/fontconfig-devel.sgml b/fontconfig/doc/fontconfig-devel.sgml
index 79cceb1ec..05c5c0928 100644
--- a/fontconfig/doc/fontconfig-devel.sgml
+++ b/fontconfig/doc/fontconfig-devel.sgml
@@ -190,9 +190,12 @@ convenience for the application's rendering mechanism.
the font
embolden FC_EMBOLDEN Bool Rasterizer should
synthetically embolden the font
+ fontfeatures FC_FONT_FEATURES String List of extra feature tags in
+ OpenType to be enabled
namelang FC_NAMELANG String Language name to be used for the
default value of familylang,
stylelang and fullnamelang
+ prgname FC_PRGNAME String Name of the running program
</programlisting>
</sect2>
</sect1>
diff --git a/fontconfig/doc/fontconfig-user.sgml b/fontconfig/doc/fontconfig-user.sgml
index c842371ec..90e246b69 100644
--- a/fontconfig/doc/fontconfig-user.sgml
+++ b/fontconfig/doc/fontconfig-user.sgml
@@ -131,6 +131,8 @@ convenience for the applications' rendering mechanism.
fontversion Int Version number of the font
capability String List of layout capabilities in the font
embolden Bool Rasterizer should synthetically embolden the font
+ fontfeatures String List of the feature tags in OpenType to be enabled
+ prgname String String Name of the running program
</programlisting>
</refsect2>
<refsect2>
diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h
index 52e9438fe..dc2532ff4 100644
--- a/fontconfig/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig/fontconfig.h
@@ -112,7 +112,9 @@ typedef int FcBool;
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
#define FC_LCD_FILTER "lcdfilter" /* Int */
+#define FC_FONT_FEATURES "fontfeatures" /* String */
#define FC_NAMELANG "namelang" /* String RFC 3866 langs */
+#define FC_PRGNAME "prgname" /* String */
#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
diff --git a/fontconfig/src/fccfg.c b/fontconfig/src/fccfg.c
index 877a4f57e..3e9fdaba4 100644
--- a/fontconfig/src/fccfg.c
+++ b/fontconfig/src/fccfg.c
@@ -1478,6 +1478,7 @@ FcConfigSubstituteWithPat (FcConfig *config,
FcPattern *p_pat,
FcMatchKind kind)
{
+ FcValue v;
FcSubst *s;
FcSubState *st;
int i;
@@ -1513,6 +1514,12 @@ FcConfigSubstituteWithPat (FcConfig *config,
}
FcStrListDone (l);
}
+ if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch)
+ {
+ FcChar8 *prgname = FcGetPrgname ();
+ if (prgname)
+ FcPatternObjectAddString (p, FC_PRGNAME_OBJECT, prgname);
+ }
break;
case FcMatchFont:
s = config->substFont;
diff --git a/fontconfig/src/fccompat.c b/fontconfig/src/fccompat.c
index 169cab9ed..2aa29ddcc 100644
--- a/fontconfig/src/fccompat.c
+++ b/fontconfig/src/fccompat.c
@@ -100,7 +100,11 @@ FcMakeTempfile (char *template)
return -1;
fd = FcOpen(template, O_RDWR | O_EXCL | O_CREAT, 0600);
#else
-#error no secure functions to create a temporary file
+ /* warn at the runtime for just debugging purpose why something may
+ * goes wrong. mingw may not have one, but it shouldn't be reached since
+ * this function isn't used so far.
+ */
+ fprintf(stderr, "Fontconfig warning: No secure functions to create a temporary file\n");
#endif
return fd;
diff --git a/fontconfig/src/fcdefault.c b/fontconfig/src/fcdefault.c
index 6937994b7..aa47840d1 100644
--- a/fontconfig/src/fcdefault.c
+++ b/fontconfig/src/fcdefault.c
@@ -104,11 +104,81 @@ retry:
return lang;
}
+static FcChar8 *default_prgname;
+
+FcChar8 *
+FcGetPrgname (void)
+{
+ FcChar8 *prgname;
+retry:
+ prgname = fc_atomic_ptr_get (&default_prgname);
+ if (!prgname)
+ {
+#ifdef _WIN32
+ char buf[MAX_PATH+1];
+
+ /* TODO This is ASCII-only; fix it. */
+ if (GetModuleFileNameA (GetModuleHandle (NULL), buf, sizeof (buf) / sizeof (buf[0])) > 0)
+ {
+ char *p;
+ unsigned int len;
+
+ p = strrchr (buf, '\\');
+ if (p)
+ p++;
+ else
+ p = buf;
+
+ len = strlen (p);
+
+ if (len > 4 && 0 == strcmp (p + len - 4, ".exe"))
+ {
+ len -= 4;
+ buf[len] = '\0';
+ }
+
+ prgname = FcStrdup (p);
+ }
+#else
+ char buf[8192];
+ unsigned int len;
+
+ len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1);
+ if (len > 0)
+ {
+ char *p;
+
+ p = strrchr (buf, '/');
+ if (p)
+ p++;
+ else
+ p = buf;
+
+ prgname = FcStrdup (p);
+ }
+#endif
+
+ if (!prgname)
+ prgname = FcStrdup ("");
+
+ if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) {
+ free (prgname);
+ goto retry;
+ }
+ }
+
+ if (prgname && !prgname[0])
+ return NULL;
+
+ return prgname;
+}
+
void
FcDefaultFini (void)
{
FcChar8 *lang;
FcStrSet *langs;
+ FcChar8 *prgname;
lang = fc_atomic_ptr_get (&default_lang);
if (lang && fc_atomic_ptr_cmpexch (&default_lang, lang, NULL)) {
@@ -120,6 +190,11 @@ FcDefaultFini (void)
FcRefInit (&langs->ref, 1);
FcStrSetDestroy (langs);
}
+
+ prgname = fc_atomic_ptr_get (&default_prgname);
+ if (prgname && fc_atomic_ptr_cmpexch (&default_prgname, prgname, NULL)) {
+ free (prgname);
+ }
}
void
@@ -195,7 +270,7 @@ FcDefaultSubstitute (FcPattern *pattern)
* exact matched "en" has higher score than ll-cc.
*/
v2.type = FcTypeString;
- v2.u.s = FcStrdup ("en-us");
+ v2.u.s = (FcChar8 *) "en-us";
if (FcPatternObjectGet (pattern, FC_FAMILYLANG_OBJECT, 0, &v) == FcResultNoMatch)
{
FcPatternObjectAdd (pattern, FC_FAMILYLANG_OBJECT, namelang, FcTrue);
@@ -211,7 +286,13 @@ FcDefaultSubstitute (FcPattern *pattern)
FcPatternObjectAdd (pattern, FC_FULLNAMELANG_OBJECT, namelang, FcTrue);
FcPatternObjectAddWithBinding (pattern, FC_FULLNAMELANG_OBJECT, v2, FcValueBindingWeak, FcTrue);
}
- FcFree (v2.u.s);
+
+ if (FcPatternObjectGet (pattern, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch)
+ {
+ FcChar8 *prgname = FcGetPrgname ();
+ if (prgname)
+ FcPatternObjectAddString (pattern, FC_PRGNAME_OBJECT, prgname);
+ }
}
#define __fcdefault__
#include "fcaliastail.h"
diff --git a/fontconfig/src/fcint.h b/fontconfig/src/fcint.h
index 512926797..3cf526f3d 100644
--- a/fontconfig/src/fcint.h
+++ b/fontconfig/src/fcint.h
@@ -770,6 +770,9 @@ FcInitDebug (void);
FcPrivate FcChar8 *
FcGetDefaultLang (void);
+FcPrivate FcChar8 *
+FcGetPrgname (void);
+
FcPrivate void
FcDefaultFini (void);
diff --git a/fontconfig/src/fcobjs.h b/fontconfig/src/fcobjs.h
index 1e9067e21..ad803eb13 100644
--- a/fontconfig/src/fcobjs.h
+++ b/fontconfig/src/fcobjs.h
@@ -41,4 +41,6 @@ FC_OBJECT (EMBEDDED_BITMAP, FcTypeBool)
FC_OBJECT (DECORATIVE, FcTypeBool)
FC_OBJECT (LCD_FILTER, FcTypeInteger)
FC_OBJECT (NAMELANG, FcTypeString)
+FC_OBJECT (FONT_FEATURES, FcTypeString)
+FC_OBJECT (PRGNAME, FcTypeString)
/* ^-------------- Add new objects here. */
diff --git a/gl/autogen.sh b/gl/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/gl/autogen.sh
+++ b/gl/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/gl/configure.ac b/gl/configure.ac
index 58d60fa34..f522b46b8 100644
--- a/gl/configure.ac
+++ b/gl/configure.ac
@@ -1,7 +1,6 @@
AC_PREREQ([2.60])
AC_INIT([GLProto], [1.4.16], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Require xorg-macros: XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
diff --git a/libX11/autogen.sh b/libX11/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libX11/autogen.sh
+++ b/libX11/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libX11/configure.ac b/libX11/configure.ac
index c29209420..4d7d411ae 100644
--- a/libX11/configure.ac
+++ b/libX11/configure.ac
@@ -15,7 +15,6 @@ AC_USE_SYSTEM_EXTENSIONS
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/libXau/autogen.sh b/libXau/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libXau/autogen.sh
+++ b/libXau/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libXau/configure.ac b/libXau/configure.ac
index 92ad113f7..62a4717f5 100644
--- a/libXau/configure.ac
+++ b/libXau/configure.ac
@@ -29,7 +29,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_LIBTOOL_WIN32_DLL
diff --git a/libXext/autogen.sh b/libXext/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libXext/autogen.sh
+++ b/libXext/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libXext/configure.ac b/libXext/configure.ac
index 7f81504e3..63775de77 100644
--- a/libXext/configure.ac
+++ b/libXext/configure.ac
@@ -8,7 +8,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/libXft/autogen.sh b/libXft/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libXft/autogen.sh
+++ b/libXft/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libXft/configure.ac b/libXft/configure.ac
index dd415ef5e..013d9a64b 100644
--- a/libXft/configure.ac
+++ b/libXft/configure.ac
@@ -34,7 +34,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/libXinerama/autogen.sh b/libXinerama/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libXinerama/autogen.sh
+++ b/libXinerama/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libXinerama/configure.ac b/libXinerama/configure.ac
index 545c94696..e3355083b 100644
--- a/libXinerama/configure.ac
+++ b/libXinerama/configure.ac
@@ -28,7 +28,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/libXmu/autogen.sh b/libXmu/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libXmu/autogen.sh
+++ b/libXmu/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libXmu/configure.ac b/libXmu/configure.ac
index 17fff034b..18f7f5830 100644
--- a/libXmu/configure.ac
+++ b/libXmu/configure.ac
@@ -8,7 +8,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/libfontenc/autogen.sh b/libfontenc/autogen.sh
index 904cd6746..fc34bd55c 100644
--- a/libfontenc/autogen.sh
+++ b/libfontenc/autogen.sh
@@ -9,4 +9,6 @@ cd $srcdir
autoreconf -v --install || exit 1
cd $ORIGDIR || exit $?
-$srcdir/configure --enable-maintainer-mode "$@"
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/libfontenc/configure.ac b/libfontenc/configure.ac
index 37089c211..953a81f86 100644
--- a/libfontenc/configure.ac
+++ b/libfontenc/configure.ac
@@ -28,7 +28,6 @@ AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
diff --git a/mesalib/docs/vmware-guest.html b/mesalib/docs/vmware-guest.html
index 62c844579..ac5f03c9c 100644
--- a/mesalib/docs/vmware-guest.html
+++ b/mesalib/docs/vmware-guest.html
@@ -98,8 +98,9 @@ Begin by saving your current directory location:
<pre>
git clone git://anongit.freedesktop.org/git/mesa/vmwgfx
</pre>
-
-<li>libdrm, A user-space library that interfaces with drm. Most distros ship with this driver. Safest bet is really to replace the system one. Optionally you can point LIBDRM_CFLAGS and LIBDRM_LIBS to the libdrm-2.4.22 package in toolchain. But here, we replace:
+<li>libdrm, a user-space library that interfaces with drm.
+Most distros ship with this but it's safest to install a newer version.
+To get the latest code from git:
<pre>
git clone git://anongit.freedesktop.org/git/mesa/drm
</pre>
@@ -116,7 +117,7 @@ Begin by saving your current directory location:
<li>Build libdrm: If you're on a 32-bit system, you should skip the --libdir configure option. Note also the comment about toolchain libdrm above.
<pre>
cd $TOP/drm
- ./autogen.sh --prefix=/usr --enable-vmwgfx-experimental-api --libdir=/usr/lib64
+ ./autogen.sh --prefix=/usr --libdir=/usr/lib64
make
sudo make install
</pre>
diff --git a/mesalib/include/GL/internal/dri_interface.h b/mesalib/include/GL/internal/dri_interface.h
index 568581d5b..c236cb732 100644
--- a/mesalib/include/GL/internal/dri_interface.h
+++ b/mesalib/include/GL/internal/dri_interface.h
@@ -826,8 +826,9 @@ struct __DRIdri2LoaderExtensionRec {
#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */
#define __DRI_API_GLES 1 /**< OpenGL ES 1.x */
-#define __DRI_API_GLES2 2 /**< OpenGL ES 2.0 or 3.0 */
+#define __DRI_API_GLES2 2 /**< OpenGL ES 2.x */
#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */
+#define __DRI_API_GLES3 4 /**< OpenGL ES 3.x */
#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0
#define __DRI_CTX_ATTRIB_MINOR_VERSION 1
diff --git a/mesalib/src/gallium/auxiliary/Makefile.am b/mesalib/src/gallium/auxiliary/Makefile.am
index a4eee4773..49792930a 100644
--- a/mesalib/src/gallium/auxiliary/Makefile.am
+++ b/mesalib/src/gallium/auxiliary/Makefile.am
@@ -45,3 +45,9 @@ util/u_format_srgb.c: $(srcdir)/util/u_format_srgb.py
util/u_format_table.c: $(srcdir)/util/u_format_table.py $(srcdir)/util/u_format_pack.py $(srcdir)/util/u_format_parse.py $(srcdir)/util/u_format.csv
$(AM_V_GEN) $(PYTHON2) $(srcdir)/util/u_format_table.py $(srcdir)/util/u_format.csv > $@
+
+# XXX: As a work around for https://bugs.freedesktop.org/show_bug.cgi?id=59334
+# clover needs to link against libgallium.a. Delete this once we have a real
+# fix for this bug.
+all-local: libgallium.la
+ ln -f $(builddir)/.libs/libgallium.a $(builddir)/libgallium.a
diff --git a/mesalib/src/gallium/auxiliary/util/u_pack_color.h b/mesalib/src/gallium/auxiliary/util/u_pack_color.h
index 6c6d9669c..1f6a56a33 100644
--- a/mesalib/src/gallium/auxiliary/util/u_pack_color.h
+++ b/mesalib/src/gallium/auxiliary/util/u_pack_color.h
@@ -52,6 +52,7 @@ union util_color {
ubyte ub;
ushort us;
uint ui;
+ ushort h[4]; /* half float */
float f[4];
double d[4];
};
diff --git a/mesalib/src/gallium/auxiliary/util/u_simple_shaders.c b/mesalib/src/gallium/auxiliary/util/u_simple_shaders.c
index 5f0134d70..7e3666122 100644
--- a/mesalib/src/gallium/auxiliary/util/u_simple_shaders.c
+++ b/mesalib/src/gallium/auxiliary/util/u_simple_shaders.c
@@ -316,13 +316,39 @@ util_make_fragment_tex_shader_writestencil(struct pipe_context *pipe,
/**
- * Make simple fragment color pass-through shader.
+ * Make simple fragment color pass-through shader that replicates OUT[0]
+ * to all bound colorbuffers.
*/
void *
-util_make_fragment_passthrough_shader(struct pipe_context *pipe)
+util_make_fragment_passthrough_shader(struct pipe_context *pipe,
+ int input_semantic,
+ int input_interpolate)
{
- return util_make_fragment_cloneinput_shader(pipe, 1, TGSI_SEMANTIC_COLOR,
- TGSI_INTERPOLATE_PERSPECTIVE);
+ static const char shader_templ[] =
+ "FRAG\n"
+ "PROPERTY FS_COLOR0_WRITES_ALL_CBUFS 1\n"
+ "DCL IN[0], %s[0], %s\n"
+ "DCL OUT[0], COLOR[0]\n"
+
+ "MOV OUT[0], IN[0]\n"
+ "END\n";
+
+ char text[sizeof(shader_templ)+100];
+ struct tgsi_token tokens[1000];
+ struct pipe_shader_state state = {tokens};
+
+ sprintf(text, shader_templ, tgsi_semantic_names[input_semantic],
+ tgsi_interpolate_names[input_interpolate]);
+
+ if (!tgsi_text_translate(text, tokens, Elements(tokens))) {
+ assert(0);
+ return NULL;
+ }
+#if 0
+ tgsi_dump(state.tokens, 0);
+#endif
+
+ return pipe->create_fs_state(pipe, &state);
}
diff --git a/mesalib/src/gallium/auxiliary/util/u_simple_shaders.h b/mesalib/src/gallium/auxiliary/util/u_simple_shaders.h
index e4ffde652..22b9cee4d 100644
--- a/mesalib/src/gallium/auxiliary/util/u_simple_shaders.h
+++ b/mesalib/src/gallium/auxiliary/util/u_simple_shaders.h
@@ -87,7 +87,9 @@ util_make_fragment_tex_shader_writestencil(struct pipe_context *pipe,
extern void *
-util_make_fragment_passthrough_shader(struct pipe_context *pipe);
+util_make_fragment_passthrough_shader(struct pipe_context *pipe,
+ int input_semantic,
+ int input_interpolate);
extern void *
diff --git a/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
new file mode 100644
index 000000000..70a2a3109
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/ARB_internalformat_query.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<OpenGLAPI>
+
+<category name="GL_ARB_internalformat_query" number="112">
+ <!-- Other existing enums are reused for this extension. -->
+
+ <enum name="NUM_SAMPLE_COUNTS" value="0x9380"/>
+
+ <function name="GetInternalformativ" offset="assign" static_dispatch="false"
+ es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="internalformat" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <param name="bufSize" type="GLsizei"/>
+ <param name="params" type="GLint *"/>
+ </function>
+</category>
+
+</OpenGLAPI>
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml
index 934386031..4e5bef7b8 100644
--- a/mesalib/src/mapi/glapi/gen/gl_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_API.xml
@@ -8298,13 +8298,15 @@
</function>
</category>
-<!-- ARB extensions #110...#112 -->
+<!-- ARB extensions #110...#116 -->
+
+<xi:include href="ARB_internalformat_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_ARB_map_buffer_alignment" number="113">
<enum name="MIN_MAP_BUFFER_ALIGNMENT" value="0x90BC" />
</category>
-<!-- ARB extensions #114...#116 -->
+<xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="ARB_texture_storage.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
diff --git a/mesalib/src/mapi/glapi/gen/gl_genexec.py b/mesalib/src/mapi/glapi/gen/gl_genexec.py
index da9ae716a..a85b4471a 100644
--- a/mesalib/src/mapi/glapi/gen/gl_genexec.py
+++ b/mesalib/src/mapi/glapi/gen/gl_genexec.py
@@ -108,6 +108,7 @@ header = """/**
#include "main/shaderapi.h"
#include "main/uniforms.h"
#include "main/syncobj.h"
+#include "main/formatquery.h"
#include "main/dispatch.h"
diff --git a/mesalib/src/mesa/drivers/common/driverfuncs.c b/mesalib/src/mesa/drivers/common/driverfuncs.c
index 93fa3c745..3de5199b4 100644
--- a/mesalib/src/mesa/drivers/common/driverfuncs.c
+++ b/mesalib/src/mesa/drivers/common/driverfuncs.c
@@ -91,6 +91,7 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
/* Texture functions */
driver->ChooseTextureFormat = _mesa_choose_tex_format;
+ driver->QuerySamplesForFormat = NULL;
driver->TexImage = _mesa_store_teximage;
driver->TexSubImage = _mesa_store_texsubimage;
driver->GetTexImage = _mesa_meta_GetTexImage;
diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c
index d211fda9d..e25481e1a 100644
--- a/mesalib/src/mesa/drivers/common/meta.c
+++ b/mesalib/src/mesa/drivers/common/meta.c
@@ -54,6 +54,7 @@
#include "main/pixel.h"
#include "main/pbo.h"
#include "main/polygon.h"
+#include "main/queryobj.h"
#include "main/readpix.h"
#include "main/scissor.h"
#include "main/shaderapi.h"
@@ -89,6 +90,9 @@ struct save_state
{
GLbitfield SavedState; /**< bitmask of MESA_META_* flags */
+ /** MESA_META_CLEAR (and others?) */
+ struct gl_query_object *CurrentOcclusionObject;
+
/** MESA_META_ALPHA_TEST */
GLboolean AlphaEnabled;
GLenum AlphaFunc;
@@ -222,6 +226,9 @@ struct blit_state
GLuint ArrayObj;
GLuint VBO;
GLuint DepthFP;
+ GLuint ShaderProg;
+ GLuint RectShaderProg;
+ struct temp_texture depthTex;
};
@@ -478,6 +485,15 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
if (save->TransformFeedbackNeedsResume)
_mesa_PauseTransformFeedback();
+ /* After saving the current occlusion object, call EndQuery so that no
+ * occlusion querying will be active during the meta-operation.
+ */
+ if (state & MESA_META_OCCLUSION_QUERY) {
+ save->CurrentOcclusionObject = ctx->Query.CurrentOcclusionObject;
+ if (save->CurrentOcclusionObject)
+ _mesa_EndQuery(save->CurrentOcclusionObject->Target);
+ }
+
if (state & MESA_META_ALPHA_TEST) {
save->AlphaEnabled = ctx->Color.AlphaEnabled;
save->AlphaFunc = ctx->Color.AlphaFunc;
@@ -806,6 +822,18 @@ _mesa_meta_end(struct gl_context *ctx)
struct save_state *save = &ctx->Meta->Save[ctx->Meta->SaveStackDepth - 1];
const GLbitfield state = save->SavedState;
+ /* After starting a new occlusion query, initialize the results to the
+ * values saved previously. The driver will then continue to increment
+ * these values.
+ */
+ if (state & MESA_META_OCCLUSION_QUERY) {
+ if (save->CurrentOcclusionObject) {
+ _mesa_BeginQuery(save->CurrentOcclusionObject->Target,
+ save->CurrentOcclusionObject->Id);
+ ctx->Query.CurrentOcclusionObject->Result = save->CurrentOcclusionObject->Result;
+ }
+ }
+
if (state & MESA_META_ALPHA_TEST) {
if (ctx->Color.AlphaEnabled != save->AlphaEnabled)
_mesa_set_enable(ctx, GL_ALPHA_TEST, save->AlphaEnabled);
@@ -1144,7 +1172,7 @@ static void
init_temp_texture(struct gl_context *ctx, struct temp_texture *tex)
{
/* prefer texture rectangle */
- if (ctx->Extensions.NV_texture_rectangle) {
+ if (_mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle) {
tex->Target = GL_TEXTURE_RECTANGLE;
tex->MaxSize = ctx->Const.MaxTextureRectSize;
tex->NPOT = GL_TRUE;
@@ -1205,6 +1233,21 @@ get_bitmap_temp_texture(struct gl_context *ctx)
return tex;
}
+/**
+ * Return pointer to depth temp_texture.
+ * This does some one-time init if needed.
+ */
+static struct temp_texture *
+get_temp_depth_texture(struct gl_context *ctx)
+{
+ struct temp_texture *tex = &ctx->Meta->Blit.depthTex;
+
+ if (!tex->TexObj) {
+ init_temp_texture(ctx, tex);
+ }
+
+ return tex;
+}
/**
* Compute the width/height of texture needed to draw an image of the
@@ -1269,7 +1312,8 @@ alloc_texture(struct temp_texture *tex,
* Setup/load texture for glCopyPixels or glBlitFramebuffer.
*/
static void
-setup_copypix_texture(struct temp_texture *tex,
+setup_copypix_texture(struct gl_context *ctx,
+ struct temp_texture *tex,
GLboolean newTex,
GLint srcX, GLint srcY,
GLsizei width, GLsizei height, GLenum intFormat,
@@ -1278,7 +1322,8 @@ setup_copypix_texture(struct temp_texture *tex,
_mesa_BindTexture(tex->Target, tex->TexObj);
_mesa_TexParameteri(tex->Target, GL_TEXTURE_MIN_FILTER, filter);
_mesa_TexParameteri(tex->Target, GL_TEXTURE_MAG_FILTER, filter);
- _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ if (ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES)
+ _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
/* copy framebuffer image to texture */
if (newTex) {
@@ -1321,7 +1366,8 @@ setup_drawpix_texture(struct gl_context *ctx,
_mesa_BindTexture(tex->Target, tex->TexObj);
_mesa_TexParameteri(tex->Target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
_mesa_TexParameteri(tex->Target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ if (ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES)
+ _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
/* copy pixel data to texture */
if (newTex) {
@@ -1388,6 +1434,158 @@ init_blit_depth_pixels(struct gl_context *ctx)
strlen(program2), (const GLubyte *) program2);
}
+static void
+setup_ff_blit_framebuffer(struct gl_context *ctx,
+ struct blit_state *blit)
+{
+ struct vertex {
+ GLfloat x, y, s, t;
+ };
+ struct vertex verts[4];
+
+ if (blit->ArrayObj == 0) {
+ /* one-time setup */
+
+ /* create vertex array object */
+ _mesa_GenVertexArrays(1, &blit->ArrayObj);
+ _mesa_BindVertexArray(blit->ArrayObj);
+
+ /* create vertex array buffer */
+ _mesa_GenBuffers(1, &blit->VBO);
+ _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
+ _mesa_BufferData(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
+
+ /* setup vertex arrays */
+ _mesa_VertexPointer(2, GL_FLOAT, sizeof(struct vertex), OFFSET(x));
+ _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(struct vertex), OFFSET(s));
+ _mesa_EnableClientState(GL_VERTEX_ARRAY);
+ _mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
+ }
+
+ /* setup projection matrix */
+ _mesa_MatrixMode(GL_PROJECTION);
+ _mesa_LoadIdentity();
+ _mesa_Ortho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
+
+}
+
+static void
+setup_glsl_blit_framebuffer(struct gl_context *ctx,
+ struct blit_state *blit,
+ GLenum target)
+{
+ struct vertex {
+ GLfloat x, y, s, t;
+ };
+ struct vertex verts[4];
+ const char *vs_source;
+ char *fs_source;
+ GLuint vs, fs;
+ void *mem_ctx;
+ GLuint ShaderProg;
+ GLboolean texture_2d = (target == GL_TEXTURE_2D);
+
+ /* target = GL_TEXTURE_RECTANGLE is not supported in GLES 3.0 */
+ assert(_mesa_is_desktop_gl(ctx) || texture_2d);
+
+ /* Check if already initialized */
+ if (blit->ArrayObj == 0) {
+
+ /* create vertex array object */
+ _mesa_GenVertexArrays(1, &blit->ArrayObj);
+ _mesa_BindVertexArray(blit->ArrayObj);
+
+ /* create vertex array buffer */
+ _mesa_GenBuffers(1, &blit->VBO);
+ _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
+ _mesa_BufferData(GL_ARRAY_BUFFER_ARB, sizeof(verts),
+ NULL, GL_DYNAMIC_DRAW_ARB);
+
+ /* setup vertex arrays */
+ _mesa_VertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE,
+ sizeof(struct vertex), OFFSET(x));
+ _mesa_VertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE,
+ sizeof(struct vertex), OFFSET(s));
+ }
+
+ /* Generate a relevant fragment shader program for the texture target */
+ if ((target == GL_TEXTURE_2D && blit->ShaderProg != 0) ||
+ (target == GL_TEXTURE_RECTANGLE && blit->RectShaderProg != 0)) {
+ return;
+ }
+
+ mem_ctx = ralloc_context(NULL);
+
+ if (ctx->Const.GLSLVersion < 130) {
+ vs_source =
+ "attribute vec2 position;\n"
+ "attribute vec2 textureCoords;\n"
+ "varying vec2 texCoords;\n"
+ "void main()\n"
+ "{\n"
+ " texCoords = textureCoords;\n"
+ " gl_Position = vec4(position, 0.0, 1.0);\n"
+ "}\n";
+
+ fs_source = ralloc_asprintf(mem_ctx,
+ "uniform %s texSampler;\n"
+ "varying vec2 texCoords;\n"
+ "void main()\n"
+ "{\n"
+ " gl_FragColor = %s(texSampler, texCoords);\n"
+ " gl_FragDepth = gl_FragColor.r;\n"
+ "}\n",
+ texture_2d ? "sampler2D" : "sampler2DRect",
+ texture_2d ? "texture2D" : "texture2DRect");
+ }
+ else {
+ vs_source = ralloc_asprintf(mem_ctx,
+ "#version %s\n"
+ "in vec2 position;\n"
+ "in vec2 textureCoords;\n"
+ "out vec2 texCoords;\n"
+ "void main()\n"
+ "{\n"
+ " texCoords = textureCoords;\n"
+ " gl_Position = vec4(position, 0.0, 1.0);\n"
+ "}\n",
+ _mesa_is_desktop_gl(ctx) ? "130" : "300 es");
+ fs_source = ralloc_asprintf(mem_ctx,
+ "#version %s\n"
+ "uniform %s texSampler;\n"
+ "in vec2 texCoords;\n"
+ "out vec4 out_color;\n"
+ "\n"
+ "void main()\n"
+ "{\n"
+ " out_color = %s(texSampler, texCoords);\n"
+ " gl_FragDepth = out_color.r;\n"
+ "}\n",
+ _mesa_is_desktop_gl(ctx) ? "130" : "300 es",
+ texture_2d ? "sampler2D" : "sampler2DRect",
+ texture_2d ? "texture" : "texture2DRect");
+ }
+
+ vs = compile_shader_with_debug(ctx, GL_VERTEX_SHADER, vs_source);
+ fs = compile_shader_with_debug(ctx, GL_FRAGMENT_SHADER, fs_source);
+
+ ShaderProg = _mesa_CreateProgramObjectARB();
+ _mesa_AttachShader(ShaderProg, fs);
+ _mesa_DeleteObjectARB(fs);
+ _mesa_AttachShader(ShaderProg, vs);
+ _mesa_DeleteObjectARB(vs);
+ _mesa_BindAttribLocation(ShaderProg, 0, "position");
+ _mesa_BindAttribLocation(ShaderProg, 1, "texcoords");
+ _mesa_EnableVertexAttribArray(0);
+ _mesa_EnableVertexAttribArray(1);
+ link_program_with_debug(ctx, ShaderProg);
+ ralloc_free(mem_ctx);
+ if (texture_2d)
+ blit->ShaderProg = ShaderProg;
+ else
+ blit->RectShaderProg = ShaderProg;
+}
/**
* Try to do a glBlitFramebuffer using no-copy texturing.
@@ -1401,17 +1599,22 @@ static GLbitfield
blitframebuffer_texture(struct gl_context *ctx,
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
- GLbitfield mask, GLenum filter)
+ GLbitfield mask, GLenum filter, GLint flipX,
+ GLint flipY, GLboolean glsl_version)
{
if (mask & GL_COLOR_BUFFER_BIT) {
const struct gl_framebuffer *drawFb = ctx->DrawBuffer;
const struct gl_framebuffer *readFb = ctx->ReadBuffer;
- const struct gl_renderbuffer_attachment *drawAtt =
- &drawFb->Attachment[drawFb->_ColorDrawBufferIndexes[0]];
+ const struct gl_renderbuffer_attachment *drawAtt;
const struct gl_renderbuffer_attachment *readAtt =
&readFb->Attachment[readFb->_ColorReadBufferIndex];
if (readAtt && readAtt->Texture) {
+ struct blit_state *blit = &ctx->Meta->Blit;
+ const GLint dstX = MIN2(dstX0, dstX1);
+ const GLint dstY = MIN2(dstY0, dstY1);
+ const GLint dstW = abs(dstX1 - dstX0);
+ const GLint dstH = abs(dstY1 - dstY0);
const struct gl_texture_object *texObj = readAtt->Texture;
const GLuint srcLevel = readAtt->TextureLevel;
const GLint baseLevelSave = texObj->BaseLevel;
@@ -1420,13 +1623,22 @@ blitframebuffer_texture(struct gl_context *ctx,
GLuint sampler, samplerSave =
ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler ?
ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler->Name : 0;
-
- if (drawAtt->Texture == readAtt->Texture) {
- /* Can't use same texture as both the source and dest. We need
- * to handle overlapping blits and besides, some hw may not
- * support this.
- */
- return mask;
+ int i;
+
+ /* Iterate through all draw buffers */
+ for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) {
+ int idx = ctx->DrawBuffer->_ColorDrawBufferIndexes[i];
+ if (idx == -1)
+ continue;
+ drawAtt = &drawFb->Attachment[idx];
+
+ if (drawAtt->Texture == readAtt->Texture) {
+ /* Can't use same texture as both the source and dest. We need
+ * to handle overlapping blits and besides, some hw may not
+ * support this.
+ */
+ return mask;
+ }
}
if (target != GL_TEXTURE_2D && target != GL_TEXTURE_RECTANGLE_ARB) {
@@ -1434,6 +1646,23 @@ blitframebuffer_texture(struct gl_context *ctx,
return mask;
}
+ /* Choose between glsl version and fixed function version of
+ * BlitFramebuffer function.
+ */
+ if (glsl_version) {
+ setup_glsl_blit_framebuffer(ctx, blit, target);
+ if (target == GL_TEXTURE_2D)
+ _mesa_UseProgram(blit->ShaderProg);
+ else
+ _mesa_UseProgram(blit->RectShaderProg);
+ }
+ else {
+ setup_ff_blit_framebuffer(ctx, &ctx->Meta->Blit);
+ }
+
+ _mesa_BindVertexArray(blit->ArrayObj);
+ _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
+
_mesa_GenSamplers(1, &sampler);
_mesa_BindSampler(ctx->Texture.CurrentUnit, sampler);
@@ -1463,8 +1692,10 @@ blitframebuffer_texture(struct gl_context *ctx,
GL_SKIP_DECODE_EXT);
}
- _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- _mesa_set_enable(ctx, target, GL_TRUE);
+ if (ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES) {
+ _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
+ _mesa_set_enable(ctx, target, GL_TRUE);
+ }
/* Prepare vertex data (the VBO was previously created and bound) */
{
@@ -1490,14 +1721,15 @@ blitframebuffer_texture(struct gl_context *ctx,
t1 = srcY1;
}
- verts[0].x = (GLfloat) dstX0;
- verts[0].y = (GLfloat) dstY0;
- verts[1].x = (GLfloat) dstX1;
- verts[1].y = (GLfloat) dstY0;
- verts[2].x = (GLfloat) dstX1;
- verts[2].y = (GLfloat) dstY1;
- verts[3].x = (GLfloat) dstX0;
- verts[3].y = (GLfloat) dstY1;
+ /* setup vertex positions */
+ verts[0].x = -1.0F * flipX;
+ verts[0].y = -1.0F * flipY;
+ verts[1].x = 1.0F * flipX;
+ verts[1].y = -1.0F * flipY;
+ verts[2].x = 1.0F * flipX;
+ verts[2].y = 1.0F * flipY;
+ verts[3].x = -1.0F * flipX;
+ verts[3].y = 1.0F * flipY;
verts[0].s = s0;
verts[0].t = t0;
@@ -1511,6 +1743,10 @@ blitframebuffer_texture(struct gl_context *ctx,
_mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
+ /* setup viewport */
+ _mesa_set_viewport(ctx, dstX, dstY, dstW, dstH);
+ _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ _mesa_DepthMask(GL_FALSE);
_mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
/* Restore texture object state, the texture binding will
@@ -1545,18 +1781,31 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
{
struct blit_state *blit = &ctx->Meta->Blit;
struct temp_texture *tex = get_temp_texture(ctx);
+ struct temp_texture *depthTex = get_temp_depth_texture(ctx);
const GLsizei maxTexSize = tex->MaxSize;
const GLint srcX = MIN2(srcX0, srcX1);
const GLint srcY = MIN2(srcY0, srcY1);
const GLint srcW = abs(srcX1 - srcX0);
const GLint srcH = abs(srcY1 - srcY0);
- const GLboolean srcFlipX = srcX1 < srcX0;
- const GLboolean srcFlipY = srcY1 < srcY0;
+ const GLint dstX = MIN2(dstX0, dstX1);
+ const GLint dstY = MIN2(dstY0, dstY1);
+ const GLint dstW = abs(dstX1 - dstX0);
+ const GLint dstH = abs(dstY1 - dstY0);
+ const GLint srcFlipX = (srcX1 - srcX0) / srcW;
+ const GLint srcFlipY = (srcY1 - srcY0) / srcH;
+ const GLint dstFlipX = (dstX1 - dstX0) / dstW;
+ const GLint dstFlipY = (dstY1 - dstY0) / dstH;
+ const GLint flipX = srcFlipX * dstFlipX;
+ const GLint flipY = srcFlipY * dstFlipY;
+
struct vertex {
GLfloat x, y, s, t;
};
struct vertex verts[4];
GLboolean newTex;
+ const GLboolean use_glsl_version = ctx->Extensions.ARB_vertex_shader &&
+ ctx->Extensions.ARB_fragment_shader &&
+ (ctx->API != API_OPENGLES);
/* In addition to falling back if the blit size is larger than the maximum
* texture size, fallback if the source is multisampled. This fallback can
@@ -1570,105 +1819,122 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
return;
}
- if (srcFlipX) {
- GLint tmp = dstX0;
- dstX0 = dstX1;
- dstX1 = tmp;
- }
-
- if (srcFlipY) {
- GLint tmp = dstY0;
- dstY0 = dstY1;
- dstY1 = tmp;
- }
-
/* only scissor effects blit so save/clear all other relevant state */
_mesa_meta_begin(ctx, ~MESA_META_SCISSOR);
- if (blit->ArrayObj == 0) {
- /* one-time setup */
-
- /* create vertex array object */
- _mesa_GenVertexArrays(1, &blit->ArrayObj);
- _mesa_BindVertexArray(blit->ArrayObj);
-
- /* create vertex array buffer */
- _mesa_GenBuffers(1, &blit->VBO);
- _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
- _mesa_BufferData(GL_ARRAY_BUFFER_ARB, sizeof(verts),
- NULL, GL_DYNAMIC_DRAW_ARB);
-
- /* setup vertex arrays */
- _mesa_VertexPointer(2, GL_FLOAT, sizeof(struct vertex), OFFSET(x));
- _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(struct vertex), OFFSET(s));
- _mesa_EnableClientState(GL_VERTEX_ARRAY);
- _mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY);
- }
- else {
- _mesa_BindVertexArray(blit->ArrayObj);
- _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
- }
-
/* Try faster, direct texture approach first */
mask = blitframebuffer_texture(ctx, srcX0, srcY0, srcX1, srcY1,
- dstX0, dstY0, dstX1, dstY1, mask, filter);
+ dstX0, dstY0, dstX1, dstY1, mask, filter,
+ dstFlipX, dstFlipY, use_glsl_version);
if (mask == 0x0) {
_mesa_meta_end(ctx);
return;
}
- /* Continue with "normal" approach which involves copying the src rect
- * into a temporary texture and is "blitted" by drawing a textured quad.
+ /* Choose between glsl version and fixed function version of
+ * BlitFramebuffer function.
*/
+ if (use_glsl_version) {
+ setup_glsl_blit_framebuffer(ctx, blit, tex->Target);
+ if (tex->Target == GL_TEXTURE_2D)
+ _mesa_UseProgram(blit->ShaderProg);
+ else
+ _mesa_UseProgram(blit->RectShaderProg);
+ }
+ else {
+ setup_ff_blit_framebuffer(ctx, blit);
+ }
- newTex = alloc_texture(tex, srcW, srcH, GL_RGBA);
+ _mesa_BindVertexArray(blit->ArrayObj);
+ _mesa_BindBuffer(GL_ARRAY_BUFFER_ARB, blit->VBO);
- /* vertex positions/texcoords (after texture allocation!) */
+ /* Continue with "normal" approach which involves copying the src rect
+ * into a temporary texture and is "blitted" by drawing a textured quad.
+ */
{
- verts[0].x = (GLfloat) dstX0;
- verts[0].y = (GLfloat) dstY0;
- verts[1].x = (GLfloat) dstX1;
- verts[1].y = (GLfloat) dstY0;
- verts[2].x = (GLfloat) dstX1;
- verts[2].y = (GLfloat) dstY1;
- verts[3].x = (GLfloat) dstX0;
- verts[3].y = (GLfloat) dstY1;
+ /* setup vertex positions */
+ verts[0].x = -1.0F * flipX;
+ verts[0].y = -1.0F * flipY;
+ verts[1].x = 1.0F * flipX;
+ verts[1].y = -1.0F * flipY;
+ verts[2].x = 1.0F * flipX;
+ verts[2].y = 1.0F * flipY;
+ verts[3].x = -1.0F * flipX;
+ verts[3].y = 1.0F * flipY;
- verts[0].s = 0.0F;
- verts[0].t = 0.0F;
- verts[1].s = tex->Sright;
- verts[1].t = 0.0F;
- verts[2].s = tex->Sright;
- verts[2].t = tex->Ttop;
- verts[3].s = 0.0F;
- verts[3].t = tex->Ttop;
-
- /* upload new vertex data */
- _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
}
- _mesa_set_enable(ctx, tex->Target, GL_TRUE);
+ /* glEnable() in gles2 and gles3 doesn't allow GL_TEXTURE_{1D, 2D, etc.}
+ * tokens.
+ */
+ if (_mesa_is_desktop_gl(ctx) || ctx->API == API_OPENGLES)
+ _mesa_set_enable(ctx, tex->Target, GL_TRUE);
if (mask & GL_COLOR_BUFFER_BIT) {
- setup_copypix_texture(tex, newTex, srcX, srcY, srcW, srcH,
- GL_RGBA, filter);
+ const struct gl_framebuffer *readFb = ctx->ReadBuffer;
+ const struct gl_renderbuffer *colorReadRb = readFb->_ColorReadBuffer;
+ const GLenum rb_base_format =
+ _mesa_base_tex_format(ctx, colorReadRb->InternalFormat);
+
+ newTex = alloc_texture(tex, srcW, srcH, rb_base_format);
+ setup_copypix_texture(ctx, tex, newTex, srcX, srcY, srcW, srcH,
+ rb_base_format, filter);
+ /* texcoords (after texture allocation!) */
+ {
+ verts[0].s = 0.0F;
+ verts[0].t = 0.0F;
+ verts[1].s = tex->Sright;
+ verts[1].t = 0.0F;
+ verts[2].s = tex->Sright;
+ verts[2].t = tex->Ttop;
+ verts[3].s = 0.0F;
+ verts[3].t = tex->Ttop;
+
+ /* upload new vertex data */
+ _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
+ }
+
+ _mesa_set_viewport(ctx, dstX, dstY, dstW, dstH);
+ _mesa_ColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ _mesa_set_enable(ctx, GL_DEPTH_TEST, GL_FALSE);
+ _mesa_DepthMask(GL_FALSE);
_mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
mask &= ~GL_COLOR_BUFFER_BIT;
}
- if (mask & GL_DEPTH_BUFFER_BIT) {
+ if ((mask & GL_DEPTH_BUFFER_BIT) &&
+ _mesa_is_desktop_gl(ctx) &&
+ ctx->Extensions.ARB_depth_texture &&
+ ctx->Extensions.ARB_fragment_program) {
+
GLuint *tmp = malloc(srcW * srcH * sizeof(GLuint));
+
if (tmp) {
+ /* texcoords (after texture allocation!) */
+ {
+ verts[0].s = 0.0F;
+ verts[0].t = 0.0F;
+ verts[1].s = depthTex->Sright;
+ verts[1].t = 0.0F;
+ verts[2].s = depthTex->Sright;
+ verts[2].t = depthTex->Ttop;
+ verts[3].s = 0.0F;
+ verts[3].t = depthTex->Ttop;
+
+ /* upload new vertex data */
+ _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
+ }
+
if (!blit->DepthFP)
init_blit_depth_pixels(ctx);
/* maybe change tex format here */
- newTex = alloc_texture(tex, srcW, srcH, GL_DEPTH_COMPONENT);
+ newTex = alloc_texture(depthTex, srcW, srcH, GL_DEPTH_COMPONENT);
_mesa_ReadPixels(srcX, srcY, srcW, srcH,
GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
- setup_drawpix_texture(ctx, tex, newTex, GL_DEPTH_COMPONENT, srcW, srcH,
+ setup_drawpix_texture(ctx, depthTex, newTex, GL_DEPTH_COMPONENT, srcW, srcH,
GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
_mesa_BindProgramARB(GL_FRAGMENT_PROGRAM_ARB, blit->DepthFP);
@@ -1678,6 +1944,8 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
_mesa_DepthFunc(GL_ALWAYS);
_mesa_DepthMask(GL_TRUE);
+ _mesa_set_viewport(ctx, dstX, dstY, dstW, dstH);
+ _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts);
_mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
mask &= ~GL_DEPTH_BUFFER_BIT;
@@ -1689,7 +1957,8 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
/* XXX can't easily do stencil */
}
- _mesa_set_enable(ctx, tex->Target, GL_FALSE);
+ if (_mesa_is_desktop_gl(ctx) || ctx->API == API_OPENGLES)
+ _mesa_set_enable(ctx, tex->Target, GL_FALSE);
_mesa_meta_end(ctx);
@@ -1712,6 +1981,14 @@ meta_glsl_blit_cleanup(struct gl_context *ctx, struct blit_state *blit)
_mesa_DeleteProgramsARB(1, &blit->DepthFP);
blit->DepthFP = 0;
}
+
+ _mesa_DeleteObjectARB(blit->ShaderProg);
+ blit->ShaderProg = 0;
+ _mesa_DeleteObjectARB(blit->RectShaderProg);
+ blit->RectShaderProg = 0;
+
+ _mesa_DeleteTextures(1, &blit->depthTex.TexObj);
+ blit->depthTex.TexObj = 0;
}
@@ -1987,7 +2264,8 @@ _mesa_meta_glsl_Clear(struct gl_context *ctx, GLbitfield buffers)
MESA_META_VIEWPORT |
MESA_META_CLIP |
MESA_META_CLAMP_FRAGMENT_COLOR |
- MESA_META_MULTISAMPLE);
+ MESA_META_MULTISAMPLE |
+ MESA_META_OCCLUSION_QUERY);
if (!(buffers & BUFFER_BITS_COLOR)) {
/* We'll use colormask to disable color writes. Otherwise,
@@ -2171,7 +2449,7 @@ _mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcX, GLint srcY,
}
/* Alloc/setup texture */
- setup_copypix_texture(tex, newTex, srcX, srcY, width, height,
+ setup_copypix_texture(ctx, tex, newTex, srcX, srcY, width, height,
GL_RGBA, GL_NEAREST);
_mesa_set_enable(ctx, tex->Target, GL_TRUE);
diff --git a/mesalib/src/mesa/drivers/common/meta.h b/mesalib/src/mesa/drivers/common/meta.h
index 6ffc5b56a..a6bdd3947 100644
--- a/mesalib/src/mesa/drivers/common/meta.h
+++ b/mesalib/src/mesa/drivers/common/meta.h
@@ -57,6 +57,7 @@
#define MESA_META_SELECT_FEEDBACK 0x80000
#define MESA_META_MULTISAMPLE 0x100000
#define MESA_META_FRAMEBUFFER_SRGB 0x200000
+#define MESA_META_OCCLUSION_QUERY 0x400000
/**\}*/
extern void
diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c
index 9cebcea92..9ed9df4b3 100644
--- a/mesalib/src/mesa/drivers/dri/common/dri_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c
@@ -189,6 +189,7 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api,
mesa_api = API_OPENGLES;
break;
case __DRI_API_GLES2:
+ case __DRI_API_GLES3:
mesa_api = API_OPENGLES2;
break;
case __DRI_API_OPENGL_CORE:
diff --git a/mesalib/src/mesa/drivers/dri/common/drisw_util.c b/mesalib/src/mesa/drivers/dri/common/drisw_util.c
index cd5a39a37..6af101c31 100644
--- a/mesalib/src/mesa/drivers/dri/common/drisw_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/drisw_util.c
@@ -123,6 +123,7 @@ driCreateContextAttribs(__DRIscreen *screen, int api,
mesa_api = API_OPENGLES;
break;
case __DRI_API_GLES2:
+ case __DRI_API_GLES3:
mesa_api = API_OPENGLES2;
break;
case __DRI_API_OPENGL_CORE:
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index 4a844308b..ac067d32b 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -136,10 +136,24 @@ get_buffer(struct gl_context *ctx, const char *func, GLenum target)
}
-static inline GLbitfield
-default_access_mode(const struct gl_context *ctx)
+/**
+ * Convert a GLbitfield describing the mapped buffer access flags
+ * into one of GL_READ_WRITE, GL_READ_ONLY, or GL_WRITE_ONLY.
+ */
+static GLenum
+simplified_access_mode(struct gl_context *ctx, GLbitfield access)
{
- /* Table 2.6 on page 31 (page 44 of the PDF) of the OpenGL 1.5 spec says:
+ const GLbitfield rwFlags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT;
+ if ((access & rwFlags) == rwFlags)
+ return GL_READ_WRITE;
+ if ((access & GL_MAP_READ_BIT) == GL_MAP_READ_BIT)
+ return GL_READ_ONLY;
+ if ((access & GL_MAP_WRITE_BIT) == GL_MAP_WRITE_BIT)
+ return GL_WRITE_ONLY;
+
+ /* Otherwise, AccessFlags is zero (the default state).
+ *
+ * Table 2.6 on page 31 (page 44 of the PDF) of the OpenGL 1.5 spec says:
*
* Name Type Initial Value Legal Values
* ... ... ... ...
@@ -155,26 +169,9 @@ default_access_mode(const struct gl_context *ctx)
* The difference is because GL_OES_mapbuffer only supports mapping buffers
* write-only.
*/
- return _mesa_is_gles(ctx)
- ? GL_MAP_WRITE_BIT : (GL_MAP_READ_BIT | GL_MAP_WRITE_BIT);
-}
+ assert(access == 0);
-
-/**
- * Convert a GLbitfield describing the mapped buffer access flags
- * into one of GL_READ_WRITE, GL_READ_ONLY, or GL_WRITE_ONLY.
- */
-static GLenum
-simplified_access_mode(GLbitfield access)
-{
- const GLbitfield rwFlags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT;
- if ((access & rwFlags) == rwFlags)
- return GL_READ_WRITE;
- if ((access & GL_MAP_READ_BIT) == GL_MAP_READ_BIT)
- return GL_READ_ONLY;
- if ((access & GL_MAP_WRITE_BIT) == GL_MAP_WRITE_BIT)
- return GL_WRITE_ONLY;
- return GL_READ_WRITE; /* this should never happen, but no big deal */
+ return _mesa_is_gles(ctx) ? GL_WRITE_ONLY : GL_READ_WRITE;
}
@@ -354,7 +351,7 @@ _mesa_initialize_buffer_object( struct gl_context *ctx,
obj->RefCount = 1;
obj->Name = name;
obj->Usage = GL_STATIC_DRAW_ARB;
- obj->AccessFlags = default_access_mode(ctx);
+ obj->AccessFlags = 0;
}
@@ -864,7 +861,7 @@ _mesa_DeleteBuffers(GLsizei n, const GLuint *ids)
if (_mesa_bufferobj_mapped(bufObj)) {
/* if mapped, unmap it now */
ctx->Driver.UnmapBuffer(ctx, bufObj);
- bufObj->AccessFlags = default_access_mode(ctx);
+ bufObj->AccessFlags = 0;
bufObj->Pointer = NULL;
}
@@ -1064,7 +1061,7 @@ _mesa_BufferData(GLenum target, GLsizeiptrARB size,
if (_mesa_bufferobj_mapped(bufObj)) {
/* Unmap the existing buffer. We'll replace it now. Not an error. */
ctx->Driver.UnmapBuffer(ctx, bufObj);
- bufObj->AccessFlags = default_access_mode(ctx);
+ bufObj->AccessFlags = 0;
ASSERT(bufObj->Pointer == NULL);
}
@@ -1282,7 +1279,7 @@ _mesa_UnmapBuffer(GLenum target)
#endif
status = ctx->Driver.UnmapBuffer( ctx, bufObj );
- bufObj->AccessFlags = default_access_mode(ctx);
+ bufObj->AccessFlags = 0;
ASSERT(bufObj->Pointer == NULL);
ASSERT(bufObj->Offset == 0);
ASSERT(bufObj->Length == 0);
@@ -1310,7 +1307,7 @@ _mesa_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
*params = bufObj->Usage;
return;
case GL_BUFFER_ACCESS_ARB:
- *params = simplified_access_mode(bufObj->AccessFlags);
+ *params = simplified_access_mode(ctx, bufObj->AccessFlags);
return;
case GL_BUFFER_MAPPED_ARB:
*params = _mesa_bufferobj_mapped(bufObj);
@@ -1364,7 +1361,7 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
*params = bufObj->Usage;
return;
case GL_BUFFER_ACCESS_ARB:
- *params = simplified_access_mode(bufObj->AccessFlags);
+ *params = simplified_access_mode(ctx, bufObj->AccessFlags);
return;
case GL_BUFFER_ACCESS_FLAGS:
if (!ctx->Extensions.ARB_map_buffer_range)
diff --git a/mesalib/src/mesa/main/buffers.c b/mesalib/src/mesa/main/buffers.c
index d10a57394..87848fb93 100644
--- a/mesalib/src/mesa/main/buffers.c
+++ b/mesalib/src/mesa/main/buffers.c
@@ -94,7 +94,7 @@ supported_buffer_bitmask(const struct gl_context *ctx,
* GL_FRONT_AND_BACK), return the corresponding bitmask of BUFFER_BIT_* flags.
*/
static GLbitfield
-draw_buffer_enum_to_bitmask(GLenum buffer)
+draw_buffer_enum_to_bitmask(const struct gl_context *ctx, GLenum buffer)
{
switch (buffer) {
case GL_NONE:
@@ -102,6 +102,21 @@ draw_buffer_enum_to_bitmask(GLenum buffer)
case GL_FRONT:
return BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_FRONT_RIGHT;
case GL_BACK:
+ if (_mesa_is_gles3(ctx)) {
+ /* Page 181 (page 192 of the PDF) in section 4.2.1 of the OpenGL
+ * ES 3.0.1 specification says:
+ *
+ * "When draw buffer zero is BACK, color values are written
+ * into the sole buffer for single-buffered contexts, or into
+ * the back buffer for double-buffered contexts."
+ *
+ * Since there is no stereo rendering in ES 3.0, only return the
+ * LEFT bits. This also satisfies the "n must be 1" requirement.
+ */
+ if (ctx->DrawBuffer->Visual.doubleBufferMode)
+ return BUFFER_BIT_BACK_LEFT;
+ return BUFFER_BIT_FRONT_LEFT;
+ }
return BUFFER_BIT_BACK_LEFT | BUFFER_BIT_BACK_RIGHT;
case GL_RIGHT:
return BUFFER_BIT_FRONT_RIGHT | BUFFER_BIT_BACK_RIGHT;
@@ -241,7 +256,7 @@ _mesa_DrawBuffer(GLenum buffer)
else {
const GLbitfield supportedMask
= supported_buffer_bitmask(ctx, ctx->DrawBuffer);
- destMask = draw_buffer_enum_to_bitmask(buffer);
+ destMask = draw_buffer_enum_to_bitmask(ctx, buffer);
if (destMask == BAD_MASK) {
/* totally bogus buffer */
_mesa_error(ctx, GL_INVALID_ENUM,
@@ -290,6 +305,10 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers)
/* Turns out n==0 is a valid input that should not produce an error.
* The remaining code below correctly handles the n==0 case.
+ *
+ * From the OpenGL 3.0 specification, page 258:
+ * "An INVALID_VALUE error is generated if n is greater than
+ * MAX_DRAW_BUFFERS."
*/
if (n < 0 || n > (GLsizei) ctx->Const.MaxDrawBuffers) {
_mesa_error(ctx, GL_INVALID_VALUE, "glDrawBuffersARB(n)");
@@ -299,26 +318,94 @@ _mesa_DrawBuffers(GLsizei n, const GLenum *buffers)
supportedMask = supported_buffer_bitmask(ctx, ctx->DrawBuffer);
usedBufferMask = 0x0;
+ /* From the ES 3.0 specification, page 180:
+ * "If the GL is bound to the default framebuffer, then n must be 1
+ * and the constant must be BACK or NONE."
+ */
+ if (_mesa_is_gles3(ctx) && _mesa_is_winsys_fbo(ctx->DrawBuffer) &&
+ (n != 1 || (buffers[0] != GL_NONE && buffers[0] != GL_BACK))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawBuffers(buffer)");
+ return;
+ }
+
/* complicated error checking... */
for (output = 0; output < n; output++) {
if (buffers[output] == GL_NONE) {
destMask[output] = 0x0;
}
else {
- destMask[output] = draw_buffer_enum_to_bitmask(buffers[output]);
- if (destMask[output] == BAD_MASK
- || _mesa_bitcount(destMask[output]) > 1) {
+ /* Page 259 (page 275 of the PDF) in section 4.2.1 of the OpenGL 3.0
+ * spec (20080923) says:
+ *
+ * "If the GL is bound to a framebuffer object and DrawBuffers is
+ * supplied with [...] COLOR_ATTACHMENTm where m is greater than
+ * or equal to the value of MAX_COLOR_ATTACHMENTS, then the error
+ * INVALID_OPERATION results."
+ */
+ if (_mesa_is_user_fbo(ctx->DrawBuffer) && buffers[output] >=
+ GL_COLOR_ATTACHMENT0 + ctx->Const.MaxDrawBuffers) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawBuffersARB(buffer)");
+ return;
+ }
+
+ destMask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output]);
+
+ /* From the OpenGL 3.0 specification, page 258:
+ * "Each buffer listed in bufs must be one of the values from tables
+ * 4.5 or 4.6. Otherwise, an INVALID_ENUM error is generated.
+ */
+ if (destMask[output] == BAD_MASK) {
_mesa_error(ctx, GL_INVALID_ENUM, "glDrawBuffersARB(buffer)");
return;
}
+
+ /* From the OpenGL 3.0 specification, page 259:
+ * "For both the default framebuffer and framebuffer objects, the
+ * constants FRONT, BACK, LEFT, RIGHT, and FRONT_AND_BACK are not
+ * valid in the bufs array passed to DrawBuffers, and will result in
+ * the error INVALID_OPERATION. This restriction is because these
+ * constants may themselves refer to multiple buffers, as shown in
+ * table 4.4."
+ */
+ if (_mesa_bitcount(destMask[output]) > 1) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawBuffersARB(buffer)");
+ return;
+ }
+
+ /* From the OpenGL 3.0 specification, page 259:
+ * "If the GL is bound to the default framebuffer and DrawBuffers is
+ * supplied with a constant (other than NONE) that does not indicate
+ * any of the color buffers allocated to the GL context by the window
+ * system, the error INVALID_OPERATION will be generated.
+ *
+ * If the GL is bound to a framebuffer object and DrawBuffers is
+ * supplied with a constant from table 4.6 [...] then the error
+ * INVALID_OPERATION results."
+ */
destMask[output] &= supportedMask;
if (destMask[output] == 0) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawBuffersARB(unsupported buffer)");
return;
}
+
+ /* ES 3.0 is even more restrictive. From the ES 3.0 spec, page 180:
+ * "If the GL is bound to a framebuffer object, the ith buffer listed
+ * in bufs must be COLOR_ATTACHMENTi or NONE. [...] INVALID_OPERATION."
+ */
+ if (_mesa_is_gles3(ctx) && _mesa_is_user_fbo(ctx->DrawBuffer) &&
+ buffers[output] != GL_NONE &&
+ buffers[output] != GL_COLOR_ATTACHMENT0 + output) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDrawBuffers(buffer)");
+ return;
+ }
+
+ /* From the OpenGL 3.0 specification, page 258:
+ * "Except for NONE, a buffer may not appear more than once in the
+ * array pointed to by bufs. Specifying a buffer more then once will
+ * result in the error INVALID_OPERATION."
+ */
if (destMask[output] & usedBufferMask) {
- /* can't specify a dest buffer more than once! */
_mesa_error(ctx, GL_INVALID_OPERATION,
"glDrawBuffersARB(duplicated buffer)");
return;
@@ -391,7 +478,7 @@ _mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers,
const GLbitfield supportedMask = supported_buffer_bitmask(ctx, fb);
GLuint output;
for (output = 0; output < n; output++) {
- mask[output] = draw_buffer_enum_to_bitmask(buffers[output]);
+ mask[output] = draw_buffer_enum_to_bitmask(ctx, buffers[output]);
ASSERT(mask[output] != BAD_MASK);
mask[output] &= supportedMask;
}
diff --git a/mesalib/src/mesa/main/dd.h b/mesalib/src/mesa/main/dd.h
index 70c53240e..07787d41d 100644
--- a/mesalib/src/mesa/main/dd.h
+++ b/mesalib/src/mesa/main/dd.h
@@ -201,6 +201,22 @@ struct dd_function_table {
GLenum srcFormat, GLenum srcType );
/**
+ * Determine sample counts support for a particular format
+ *
+ * \param ctx GL context
+ * \param internalFormat GL format enum
+ * \param samples Buffer to hold the returned sample counts.
+ * Drivers \b must \b not return more than 16 counts.
+ *
+ * \returns
+ * The number of sample counts actually written to \c samples. If
+ * \c internaFormat is not renderable, zero is returned.
+ */
+ size_t (*QuerySamplesForFormat)(struct gl_context *ctx,
+ GLenum internalFormat,
+ int samples[16]);
+
+ /**
* Called by glTexImage[123]D() and glCopyTexImage[12]D()
* Allocate texture memory and copy the user's image to the buffer.
* The gl_texture_image fields, etc. will be fully initialized.
diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c
index c3c73fc26..23b494836 100644
--- a/mesalib/src/mesa/main/extensions.c
+++ b/mesalib/src/mesa/main/extensions.c
@@ -104,6 +104,7 @@ static const struct extension extension_table[] = {
{ "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 },
{ "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 },
{ "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 },
+ { "GL_ARB_internalformat_query", o(ARB_internalformat_query), GL, 2011 },
{ "GL_ARB_invalidate_subdata", o(dummy_true), GL, 2012 },
{ "GL_ARB_map_buffer_alignment", o(ARB_map_buffer_alignment), GL, 2011 },
{ "GL_ARB_map_buffer_range", o(ARB_map_buffer_range), GL, 2008 },
diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c
index 50ad84c56..9db5035d1 100644
--- a/mesalib/src/mesa/main/fbobject.c
+++ b/mesalib/src/mesa/main/fbobject.c
@@ -245,6 +245,25 @@ _mesa_get_fb0_attachment(struct gl_context *ctx, struct gl_framebuffer *fb,
{
assert(_mesa_is_winsys_fbo(fb));
+ if (_mesa_is_gles3(ctx)) {
+ assert(attachment == GL_BACK ||
+ attachment == GL_DEPTH ||
+ attachment == GL_STENCIL);
+ switch (attachment) {
+ case GL_BACK:
+ /* Since there is no stereo rendering in ES 3.0, only return the
+ * LEFT bits.
+ */
+ if (ctx->DrawBuffer->Visual.doubleBufferMode)
+ return &fb->Attachment[BUFFER_BACK_LEFT];
+ return &fb->Attachment[BUFFER_FRONT_LEFT];
+ case GL_DEPTH:
+ return &fb->Attachment[BUFFER_DEPTH];
+ case GL_STENCIL:
+ return &fb->Attachment[BUFFER_STENCIL];
+ }
+ }
+
switch (attachment) {
case GL_FRONT_LEFT:
return &fb->Attachment[BUFFER_FRONT_LEFT];
@@ -492,7 +511,8 @@ _mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat)
case GL_LUMINANCE_ALPHA:
case GL_INTENSITY:
case GL_ALPHA:
- return ctx->Extensions.ARB_framebuffer_object;
+ return ctx->API == API_OPENGL_COMPAT &&
+ ctx->Extensions.ARB_framebuffer_object;
case GL_RED:
case GL_RG:
return ctx->Extensions.ARB_texture_rg;
@@ -1110,7 +1130,7 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
case GL_RGB16:
return _mesa_is_desktop_gl(ctx) ? GL_RGB : 0;
case GL_SRGB8_EXT:
- return _mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx) ? GL_RGB : 0;
+ return _mesa_is_desktop_gl(ctx) ? GL_RGB : 0;
case GL_RGBA4:
case GL_RGB5_A1:
case GL_RGBA8:
@@ -1197,25 +1217,21 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
ctx->Extensions.ARB_framebuffer_object ? GL_ALPHA : 0;
case GL_R16F:
case GL_R32F:
- return ctx->Version >= 30
- || (ctx->API == API_OPENGL_COMPAT &&
+ return (_mesa_is_desktop_gl(ctx) &&
ctx->Extensions.ARB_texture_rg &&
ctx->Extensions.ARB_texture_float) ? GL_RED : 0;
case GL_RG16F:
case GL_RG32F:
- return ctx->Version >= 30
- || (ctx->API == API_OPENGL_COMPAT &&
+ return (_mesa_is_desktop_gl(ctx) &&
ctx->Extensions.ARB_texture_rg &&
ctx->Extensions.ARB_texture_float) ? GL_RG : 0;
case GL_RGB16F:
case GL_RGB32F:
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_float)
- || _mesa_is_gles3(ctx)
? GL_RGB : 0;
case GL_RGBA16F:
case GL_RGBA32F:
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.ARB_texture_float)
- || _mesa_is_gles3(ctx)
? GL_RGBA : 0;
case GL_ALPHA16F_ARB:
case GL_ALPHA32F_ARB:
@@ -1240,10 +1256,10 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
case GL_RGB9_E5:
return (_mesa_is_desktop_gl(ctx)
&& ctx->Extensions.EXT_texture_shared_exponent)
- || _mesa_is_gles3(ctx) ? GL_RGB : 0;
+ ? GL_RGB : 0;
case GL_R11F_G11F_B10F:
return (_mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_packed_float)
- || _mesa_is_gles3(ctx) ? GL_RGB : 0;
+ ? GL_RGB : 0;
case GL_RGBA8UI_EXT:
case GL_RGBA16UI_EXT:
@@ -1378,13 +1394,28 @@ renderbuffer_storage(GLenum target, GLenum internalFormat,
GLsizei width, GLsizei height, GLsizei samples)
{
const char *func = samples == NO_SAMPLES ?
- "glRenderbufferStorage" : "RenderbufferStorageMultisample";
+ "glRenderbufferStorage" : "glRenderbufferStorageMultisample";
struct gl_renderbuffer *rb;
GLenum baseFormat;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
+ if (MESA_VERBOSE & VERBOSE_API) {
+ if (samples == NO_SAMPLES)
+ _mesa_debug(ctx, "%s(%s, %s, %d, %d)\n",
+ func,
+ _mesa_lookup_enum_by_nr(target),
+ _mesa_lookup_enum_by_nr(internalFormat),
+ width, height);
+ else
+ _mesa_debug(ctx, "%s(%s, %s, %d, %d, %d)\n",
+ func,
+ _mesa_lookup_enum_by_nr(target),
+ _mesa_lookup_enum_by_nr(internalFormat),
+ width, height, samples);
+ }
+
if (target != GL_RENDERBUFFER_EXT) {
_mesa_error(ctx, GL_INVALID_ENUM, "%s(target)", func);
return;
@@ -1904,6 +1935,10 @@ _mesa_CheckFramebufferStatus(GLenum target)
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0);
+ if (MESA_VERBOSE & VERBOSE_API)
+ _mesa_debug(ctx, "glCheckFramebufferStatus(%s)\n",
+ _mesa_lookup_enum_by_nr(target));
+
buffer = get_framebuffer_target(ctx, target);
if (!buffer) {
_mesa_error(ctx, GL_INVALID_ENUM, "glCheckFramebufferStatus(target)");
@@ -2347,11 +2382,19 @@ _mesa_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
* OES_framebuffer_object spec refers to the EXT_framebuffer_object
* spec.
*/
- if (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_framebuffer_object) {
+ if ((!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_framebuffer_object)
+ && !_mesa_is_gles3(ctx)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glGetFramebufferAttachmentParameteriv(bound FBO = 0)");
return;
}
+
+ if (_mesa_is_gles3(ctx) && attachment != GL_BACK &&
+ attachment != GL_DEPTH && attachment != GL_STENCIL) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glGetFramebufferAttachmentParameteriv(attachment)");
+ return;
+ }
/* the default / window-system FBO */
att = _mesa_get_fb0_attachment(ctx, buffer, attachment);
}
@@ -2739,7 +2782,6 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GL_DEPTH_BUFFER_BIT |
GL_STENCIL_BUFFER_BIT);
const struct gl_framebuffer *readFb, *drawFb;
- const struct gl_renderbuffer *colorReadRb, *colorDrawRb;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -2794,8 +2836,10 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
/* get color read/draw renderbuffers */
if (mask & GL_COLOR_BUFFER_BIT) {
- colorReadRb = readFb->_ColorReadBuffer;
- colorDrawRb = drawFb->_ColorDrawBuffers[0];
+ const GLuint numColorDrawBuffers = ctx->DrawBuffer->_NumColorDrawBuffers;
+ const struct gl_renderbuffer *colorReadRb = readFb->_ColorReadBuffer;
+ const struct gl_renderbuffer *colorDrawRb = NULL;
+ GLuint i;
/* From the EXT_framebuffer_object spec:
*
@@ -2803,20 +2847,45 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
* the read and draw framebuffers, the corresponding bit is silently
* ignored."
*/
- if ((colorReadRb == NULL) || (colorDrawRb == NULL)) {
- colorReadRb = colorDrawRb = NULL;
- mask &= ~GL_COLOR_BUFFER_BIT;
+ if (!colorReadRb || numColorDrawBuffers == 0) {
+ mask &= ~GL_COLOR_BUFFER_BIT;
}
- else if (!compatible_color_datatypes(colorReadRb->Format,
- colorDrawRb->Format)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitFramebufferEXT(color buffer datatypes mismatch)");
- return;
+ else {
+ for (i = 0; i < numColorDrawBuffers; i++) {
+ colorDrawRb = ctx->DrawBuffer->_ColorDrawBuffers[i];
+ if (!colorDrawRb)
+ continue;
+
+ if (!compatible_color_datatypes(colorReadRb->Format,
+ colorDrawRb->Format)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlitFramebufferEXT(color buffer datatypes mismatch)");
+ return;
+ }
+ /* extra checks for multisample copies... */
+ if (readFb->Visual.samples > 0 || drawFb->Visual.samples > 0) {
+ /* color formats must match */
+ if (!compatible_resolve_formats(colorReadRb, colorDrawRb)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlitFramebufferEXT(bad src/dst multisample pixel formats)");
+ return;
+ }
+ }
+ }
+ if (filter == GL_LINEAR) {
+ /* 3.1 spec, page 199:
+ * "Calling BlitFramebuffer will result in an INVALID_OPERATION error
+ * if filter is LINEAR and read buffer contains integer data."
+ */
+ GLenum type = _mesa_get_format_datatype(colorReadRb->Format);
+ if (type == GL_INT || type == GL_UNSIGNED_INT) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlitFramebufferEXT(integer color type)");
+ return;
+ }
+ }
}
}
- else {
- colorReadRb = colorDrawRb = NULL;
- }
if (mask & GL_STENCIL_BUFFER_BIT) {
struct gl_renderbuffer *readRb =
@@ -2833,14 +2902,35 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
if ((readRb == NULL) || (drawRb == NULL)) {
mask &= ~GL_STENCIL_BUFFER_BIT;
}
- else if (_mesa_get_format_bits(readRb->Format, GL_STENCIL_BITS) !=
- _mesa_get_format_bits(drawRb->Format, GL_STENCIL_BITS)) {
- /* There is no need to check the stencil datatype here, because
- * there is only one: GL_UNSIGNED_INT.
- */
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitFramebufferEXT(stencil buffer size mismatch)");
- return;
+ else {
+ int read_z_bits, draw_z_bits;
+
+ if (_mesa_get_format_bits(readRb->Format, GL_STENCIL_BITS) !=
+ _mesa_get_format_bits(drawRb->Format, GL_STENCIL_BITS)) {
+ /* There is no need to check the stencil datatype here, because
+ * there is only one: GL_UNSIGNED_INT.
+ */
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlitFramebuffer(stencil attachment format mismatch)");
+ return;
+ }
+
+ read_z_bits = _mesa_get_format_bits(readRb->Format, GL_DEPTH_BITS);
+ draw_z_bits = _mesa_get_format_bits(drawRb->Format, GL_DEPTH_BITS);
+
+ /* If both buffers also have depth data, the depth formats must match
+ * as well. If one doesn't have depth, it's not blitted, so we should
+ * ignore the depth format check.
+ */
+ if (read_z_bits > 0 && draw_z_bits > 0 &&
+ (read_z_bits != draw_z_bits ||
+ _mesa_get_format_datatype(readRb->Format) !=
+ _mesa_get_format_datatype(drawRb->Format))) {
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBlitFramebuffer"
+ "(stencil attachment depth format mismatch)");
+ return;
+ }
}
}
@@ -2859,13 +2949,30 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
if ((readRb == NULL) || (drawRb == NULL)) {
mask &= ~GL_DEPTH_BUFFER_BIT;
}
- else if ((_mesa_get_format_bits(readRb->Format, GL_DEPTH_BITS) !=
- _mesa_get_format_bits(drawRb->Format, GL_DEPTH_BITS)) ||
- (_mesa_get_format_datatype(readRb->Format) !=
- _mesa_get_format_datatype(drawRb->Format))) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitFramebufferEXT(depth buffer format mismatch)");
- return;
+ else {
+ int read_s_bit, draw_s_bit;
+
+ if ((_mesa_get_format_bits(readRb->Format, GL_DEPTH_BITS) !=
+ _mesa_get_format_bits(drawRb->Format, GL_DEPTH_BITS)) ||
+ (_mesa_get_format_datatype(readRb->Format) !=
+ _mesa_get_format_datatype(drawRb->Format))) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlitFramebuffer(depth attachment format mismatch)");
+ return;
+ }
+
+ read_s_bit = _mesa_get_format_bits(readRb->Format, GL_STENCIL_BITS);
+ draw_s_bit = _mesa_get_format_bits(drawRb->Format, GL_STENCIL_BITS);
+
+ /* If both buffers also have stencil data, the stencil formats must
+ * match as well. If one doesn't have stencil, it's not blitted, so
+ * we should ignore the stencil format check.
+ */
+ if (read_s_bit > 0 && draw_s_bit > 0 && read_s_bit != draw_s_bit) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBlitFramebuffer"
+ "(depth attachment stencil bits mismatch)");
+ return;
+ }
}
}
@@ -2886,28 +2993,6 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
"glBlitFramebufferEXT(bad src/dst multisample region sizes)");
return;
}
-
- /* color formats must match */
- if (colorReadRb &&
- colorDrawRb &&
- !compatible_resolve_formats(colorReadRb, colorDrawRb)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitFramebufferEXT(bad src/dst multisample pixel formats)");
- return;
- }
- }
-
- if (filter == GL_LINEAR && (mask & GL_COLOR_BUFFER_BIT)) {
- /* 3.1 spec, page 199:
- * "Calling BlitFramebuffer will result in an INVALID_OPERATION error
- * if filter is LINEAR and read buffer contains integer data."
- */
- GLenum type = _mesa_get_format_datatype(colorReadRb->Format);
- if (type == GL_INT || type == GL_UNSIGNED_INT) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glBlitFramebufferEXT(integer color type)");
- return;
- }
}
if (!ctx->Extensions.EXT_framebuffer_blit) {
@@ -2917,6 +3002,10 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
/* Debug code */
if (DEBUG_BLIT) {
+ const struct gl_renderbuffer *colorReadRb = readFb->_ColorReadBuffer;
+ const struct gl_renderbuffer *colorDrawRb = NULL;
+ GLuint i = 0;
+
printf("glBlitFramebuffer(%d, %d, %d, %d, %d, %d, %d, %d,"
" 0x%x, 0x%x)\n",
srcX0, srcY0, srcX1, srcY1,
@@ -2938,18 +3027,25 @@ _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
}
printf("\n");
- att = find_attachment(drawFb, colorDrawRb);
- printf(" Dst FBO %u RB %u (%dx%d) ",
- drawFb->Name, colorDrawRb->Name,
- colorDrawRb->Width, colorDrawRb->Height);
- if (att && att->Texture) {
- printf("Tex %u tgt 0x%x level %u face %u",
- att->Texture->Name,
- att->Texture->Target,
- att->TextureLevel,
- att->CubeMapFace);
+ /* Print all active color render buffers */
+ for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) {
+ colorDrawRb = ctx->DrawBuffer->_ColorDrawBuffers[i];
+ if (!colorDrawRb)
+ continue;
+
+ att = find_attachment(drawFb, colorDrawRb);
+ printf(" Dst FBO %u RB %u (%dx%d) ",
+ drawFb->Name, colorDrawRb->Name,
+ colorDrawRb->Width, colorDrawRb->Height);
+ if (att && att->Texture) {
+ printf("Tex %u tgt 0x%x level %u face %u",
+ att->Texture->Name,
+ att->Texture->Target,
+ att->TextureLevel,
+ att->CubeMapFace);
+ }
+ printf("\n");
}
- printf("\n");
}
}
diff --git a/mesalib/src/mesa/main/formatquery.c b/mesalib/src/mesa/main/formatquery.c
new file mode 100644
index 000000000..f08ab66f0
--- /dev/null
+++ b/mesalib/src/mesa/main/formatquery.c
@@ -0,0 +1,147 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "mtypes.h"
+#include "glformats.h"
+#include "macros.h"
+#include "mfeatures.h"
+#include "enums.h"
+#include "fbobject.h"
+#include "formatquery.h"
+
+void GLAPIENTRY
+_mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname,
+ GLsizei bufSize, GLint *params)
+{
+ GLint buffer[16];
+ GLsizei count = 0;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!ctx->Extensions.ARB_internalformat_query) {
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetInternalformativ");
+ return;
+ }
+
+ assert(ctx->Driver.QuerySamplesForFormat != NULL);
+
+ /* The ARB_internalformat_query spec says:
+ *
+ * "If the <target> parameter to GetInternalformativ is not one of
+ * TEXTURE_2D_MULTISAMPLE, TEXTURE_2D_MULTISAMPLE_ARRAY or RENDERBUFFER
+ * then an INVALID_ENUM error is generated."
+ */
+ switch (target) {
+ case GL_RENDERBUFFER:
+ break;
+
+ case GL_TEXTURE_2D_MULTISAMPLE:
+ case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
+ /* Mesa does not currently support GL_ARB_texture_multisample, so these
+ * enums are not valid on this implementation either.
+ */
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetInternalformativ(target=%s)",
+ _mesa_lookup_enum_by_nr(target));
+ return;
+ }
+
+ /* The ARB_internalformat_query spec says:
+ *
+ * "If the <internalformat> parameter to GetInternalformativ is not
+ * color-, depth- or stencil-renderable, then an INVALID_ENUM error is
+ * generated."
+ */
+ if (_mesa_base_fbo_format(ctx, internalformat) == 0) {
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetInternalformativ(internalformat=%s)",
+ _mesa_lookup_enum_by_nr(internalformat));
+ return;
+ }
+
+ /* The ARB_internalformat_query spec says:
+ *
+ * "If the <bufSize> parameter to GetInternalformativ is negative, then
+ * an INVALID_VALUE error is generated."
+ */
+ if (bufSize < 0) {
+ _mesa_error(ctx, GL_INVALID_VALUE,
+ "glGetInternalformativ(target=%s)",
+ _mesa_lookup_enum_by_nr(target));
+ return;
+ }
+
+ switch (pname) {
+ case GL_SAMPLES:
+ count = ctx->Driver.QuerySamplesForFormat(ctx, internalformat, buffer);
+ break;
+ case GL_NUM_SAMPLE_COUNTS: {
+ /* The driver can return 0, and we should pass that along to the
+ * application. The ARB decided that ARB_internalformat_query should
+ * behave as ARB_internalformat_query2 in this situation.
+ *
+ * The ARB_internalformat_query2 spec says:
+ *
+ * "- NUM_SAMPLE_COUNTS: The number of sample counts that would be
+ * returned by querying SAMPLES is returned in <params>.
+ * * If <internalformat> is not color-renderable,
+ * depth-renderable, or stencil-renderable (as defined in
+ * section 4.4.4), or if <target> does not support multiple
+ * samples (ie other than TEXTURE_2D_MULTISAMPLE,
+ * TEXTURE_2D_MULTISAMPLE_ARRAY, or RENDERBUFFER), 0 is
+ * returned."
+ */
+ const size_t num_samples =
+ ctx->Driver.QuerySamplesForFormat(ctx, internalformat, buffer);
+
+ /* QuerySamplesForFormat writes some stuff to buffer, so we have to
+ * separately over-write it with the requested value.
+ */
+ buffer[0] = (GLint) num_samples;
+ count = 1;
+ break;
+ }
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "glGetInternalformativ(pname=%s)",
+ _mesa_lookup_enum_by_nr(pname));
+ return;
+ }
+
+ if (bufSize != 0 && params == NULL) {
+ /* Emit a warning to aid application debugging, but go ahead and do the
+ * memcpy (and probably crash) anyway.
+ */
+ _mesa_warning(ctx,
+ "glGetInternalformativ(bufSize = %d, but params = NULL)",
+ bufSize);
+ }
+
+ /* Copy the data from the temporary buffer to the buffer supplied by the
+ * application. Clamp the size of the copy to the size supplied by the
+ * application.
+ */
+ memcpy(params, buffer, MIN2(count, bufSize) * sizeof(GLint));
+
+ return;
+}
diff --git a/mesalib/src/mesa/main/formatquery.h b/mesalib/src/mesa/main/formatquery.h
new file mode 100644
index 000000000..585c3eb64
--- /dev/null
+++ b/mesalib/src/mesa/main/formatquery.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#pragma once
+#ifndef FORMATQUERY_H
+#define FORMATQUERY_H
+
+#include "compiler.h"
+#include "glheader.h"
+
+extern void GLAPIENTRY
+_mesa_GetInternalformativ(GLenum target, GLenum internalformat,
+ GLenum pname, GLsizei bufSize, GLint *params);
+
+#endif /* FORMATQUERY_H */
diff --git a/mesalib/src/mesa/main/framebuffer.c b/mesalib/src/mesa/main/framebuffer.c
index 13887f8f5..8cbfbd6bc 100644
--- a/mesalib/src/mesa/main/framebuffer.c
+++ b/mesalib/src/mesa/main/framebuffer.c
@@ -42,6 +42,7 @@
#include "framebuffer.h"
#include "renderbuffer.h"
#include "texobj.h"
+#include "glformats.h"
@@ -899,6 +900,26 @@ _mesa_get_color_read_type(struct gl_context *ctx)
/**
+ * Returns the read renderbuffer for the specified format.
+ */
+struct gl_renderbuffer *
+_mesa_get_read_renderbuffer_for_format(struct gl_context *ctx,
+ GLenum format)
+{
+ struct gl_framebuffer *rfb = ctx->ReadBuffer;
+
+ if (_mesa_is_color_format(format)) {
+ return rfb->Attachment[rfb->_ColorReadBufferIndex].Renderbuffer;
+ } else if (_mesa_is_depth_format(format) ||
+ _mesa_is_depthstencil_format(format)) {
+ return rfb->Attachment[BUFFER_DEPTH].Renderbuffer;
+ } else {
+ return rfb->Attachment[BUFFER_STENCIL].Renderbuffer;
+ }
+}
+
+
+/**
* Print framebuffer info to stderr, for debugging.
*/
void
diff --git a/mesalib/src/mesa/main/framebuffer.h b/mesalib/src/mesa/main/framebuffer.h
index ad53d8cbe..06db04925 100644
--- a/mesalib/src/mesa/main/framebuffer.h
+++ b/mesalib/src/mesa/main/framebuffer.h
@@ -30,6 +30,7 @@
struct gl_config;
struct gl_context;
+struct gl_renderbuffer;
extern struct gl_framebuffer *
_mesa_create_framebuffer(const struct gl_config *visual);
@@ -96,6 +97,10 @@ _mesa_get_color_read_type(struct gl_context *ctx);
extern GLenum
_mesa_get_color_read_format(struct gl_context *ctx);
+extern struct gl_renderbuffer *
+_mesa_get_read_renderbuffer_for_format(struct gl_context *ctx,
+ GLenum format);
+
extern void
_mesa_print_framebuffer(const struct gl_framebuffer *fb);
diff --git a/mesalib/src/mesa/main/glformats.c b/mesalib/src/mesa/main/glformats.c
index ff56ffad0..7969f77a4 100644
--- a/mesalib/src/mesa/main/glformats.c
+++ b/mesalib/src/mesa/main/glformats.c
@@ -1289,6 +1289,10 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
ctx->Extensions.ARB_texture_rgb10_a2ui) {
break; /* OK */
}
+ if (type == GL_UNSIGNED_INT_2_10_10_10_REV && format == GL_RGB &&
+ ctx->API == API_OPENGLES2) {
+ break; /* OK by GL_EXT_texture_type_2_10_10_10_REV */
+ }
return GL_INVALID_OPERATION;
case GL_UNSIGNED_INT_24_8:
@@ -1402,6 +1406,10 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_5_6_5_REV:
return GL_NO_ERROR;
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ /* OK by GL_EXT_texture_type_2_10_10_10_REV */
+ return (ctx->API == API_OPENGLES2)
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
case GL_HALF_FLOAT:
return ctx->Extensions.ARB_half_float_pixel
? GL_NO_ERROR : GL_INVALID_ENUM;
@@ -1478,8 +1486,18 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
else if (ctx->Extensions.ARB_depth_buffer_float &&
type == GL_FLOAT_32_UNSIGNED_INT_24_8_REV)
return GL_NO_ERROR;
- else
+ switch (type) {
+ case GL_BYTE:
+ case GL_UNSIGNED_BYTE:
+ case GL_SHORT:
+ case GL_UNSIGNED_SHORT:
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ case GL_FLOAT:
+ return GL_INVALID_OPERATION;
+ default:
return GL_INVALID_ENUM;
+ }
case GL_DUDV_ATI:
case GL_DU8DV8_ATI:
@@ -1670,3 +1688,442 @@ _mesa_es_error_check_format_and_type(GLenum format, GLenum type,
return type_valid ? GL_NO_ERROR : GL_INVALID_OPERATION;
}
+
+
+/**
+ * Do error checking of format/type combinations for OpenGL ES 3
+ * glTex[Sub]Image.
+ * \return error code, or GL_NO_ERROR.
+ */
+GLenum
+_mesa_es3_error_check_format_and_type(GLenum format, GLenum type,
+ GLenum internalFormat,
+ unsigned dimensions)
+{
+ GLboolean type_valid = GL_TRUE;
+
+ switch (format) {
+ case GL_RGBA:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ switch (internalFormat) {
+ case GL_RGBA:
+ case GL_RGBA8:
+ case GL_RGB5_A1:
+ case GL_RGBA4:
+ case GL_SRGB8_ALPHA8_EXT:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RGBA8_SNORM)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT_4_4_4_4:
+ switch (internalFormat) {
+ case GL_RGBA:
+ case GL_RGBA4:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_UNSIGNED_SHORT_5_5_5_1:
+ switch (internalFormat) {
+ case GL_RGBA:
+ case GL_RGB5_A1:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ switch (internalFormat) {
+ case GL_RGBA: /* GL_EXT_texture_type_2_10_10_10_REV */
+ case GL_RGB10_A2:
+ case GL_RGB5_A1:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_HALF_FLOAT:
+ if (internalFormat != GL_RGBA16F)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_FLOAT:
+ switch (internalFormat) {
+ case GL_RGBA16F:
+ case GL_RGBA32F:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RGBA_INTEGER:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_RGBA8UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RGBA8I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT:
+ if (internalFormat != GL_RGBA16UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_SHORT:
+ if (internalFormat != GL_RGBA16I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT:
+ if (internalFormat != GL_RGBA32UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_INT:
+ if (internalFormat != GL_RGBA32I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ if (internalFormat != GL_RGB10_A2UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RGB:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ switch (internalFormat) {
+ case GL_RGB:
+ case GL_RGB8:
+ case GL_RGB565:
+ case GL_SRGB8:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RGB8_SNORM)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT_5_6_5:
+ switch (internalFormat) {
+ case GL_RGB:
+ case GL_RGB565:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
+ if (internalFormat != GL_R11F_G11F_B10F)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT_5_9_9_9_REV:
+ if (internalFormat != GL_RGB9_E5)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_HALF_FLOAT:
+ switch (internalFormat) {
+ case GL_RGB16F:
+ case GL_R11F_G11F_B10F:
+ case GL_RGB9_E5:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_FLOAT:
+ switch (internalFormat) {
+ case GL_RGB16F:
+ case GL_RGB32F:
+ case GL_R11F_G11F_B10F:
+ case GL_RGB9_E5:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
+ switch (internalFormat) {
+ case GL_RGB: /* GL_EXT_texture_type_2_10_10_10_REV */
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RGB_INTEGER:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_RGB8UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RGB8I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT:
+ if (internalFormat != GL_RGB16UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_SHORT:
+ if (internalFormat != GL_RGB16I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT:
+ if (internalFormat != GL_RGB32UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_INT:
+ if (internalFormat != GL_RGB32I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RG:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_RG8)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RG8_SNORM)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_HALF_FLOAT:
+ if (internalFormat != GL_RG16F)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_FLOAT:
+ switch (internalFormat) {
+ case GL_RG16F:
+ case GL_RG32F:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RG_INTEGER:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_RG8UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_RG8I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT:
+ if (internalFormat != GL_RG16UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_SHORT:
+ if (internalFormat != GL_RG16I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT:
+ if (internalFormat != GL_RG32UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_INT:
+ if (internalFormat != GL_RG32I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RED:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_R8)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_R8_SNORM)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_HALF_FLOAT:
+ if (internalFormat != GL_R16F)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_FLOAT:
+ switch (internalFormat) {
+ case GL_R16F:
+ case GL_R32F:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_RED_INTEGER:
+ switch (type) {
+ case GL_UNSIGNED_BYTE:
+ if (internalFormat != GL_R8UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_BYTE:
+ if (internalFormat != GL_R8I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_SHORT:
+ if (internalFormat != GL_R16UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_SHORT:
+ if (internalFormat != GL_R16I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT:
+ if (internalFormat != GL_R32UI)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_INT:
+ if (internalFormat != GL_R32I)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_DEPTH_COMPONENT:
+ if (dimensions != 2) {
+ return GL_INVALID_OPERATION;
+ }
+ switch (type) {
+ case GL_UNSIGNED_SHORT:
+ if (internalFormat != GL_DEPTH_COMPONENT16)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_UNSIGNED_INT:
+ switch (internalFormat) {
+ case GL_DEPTH_COMPONENT16:
+ case GL_DEPTH_COMPONENT24:
+ break;
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_FLOAT:
+ if (internalFormat != GL_DEPTH_COMPONENT32F)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_DEPTH_STENCIL:
+ if (dimensions != 2) {
+ return GL_INVALID_OPERATION;
+ }
+ switch (type) {
+ case GL_UNSIGNED_INT_24_8:
+ if (internalFormat != GL_DEPTH24_STENCIL8)
+ return GL_INVALID_OPERATION;
+ break;
+
+ case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
+ if (internalFormat != GL_DEPTH32F_STENCIL8)
+ return GL_INVALID_OPERATION;
+ break;
+
+ default:
+ return GL_INVALID_OPERATION;
+ }
+ break;
+
+ case GL_ALPHA:
+ case GL_LUMINANCE:
+ case GL_LUMINANCE_ALPHA:
+ if (type != GL_UNSIGNED_BYTE || format != internalFormat)
+ return GL_INVALID_OPERATION;
+ break;
+ }
+
+ return type_valid ? GL_NO_ERROR : GL_INVALID_OPERATION;
+}
diff --git a/mesalib/src/mesa/main/glformats.h b/mesalib/src/mesa/main/glformats.h
index fe604ddc9..4cbc82f5e 100644
--- a/mesalib/src/mesa/main/glformats.h
+++ b/mesalib/src/mesa/main/glformats.h
@@ -120,6 +120,11 @@ extern GLenum
_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
unsigned dimensions);
+extern GLenum
+_mesa_es3_error_check_format_and_type(GLenum format, GLenum type,
+ GLenum internalFormat,
+ unsigned dimensions);
+
#ifdef __cplusplus
}
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index 8904b13d9..d0c0e24ac 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -2523,6 +2523,7 @@ struct gl_query_object
GLuint64EXT Result; /**< the counter */
GLboolean Active; /**< inside Begin/EndQuery */
GLboolean Ready; /**< result is ready? */
+ GLboolean EverBound;/**< has query object ever been bound */
};
@@ -3030,6 +3031,7 @@ struct gl_extensions
GLboolean ARB_half_float_pixel;
GLboolean ARB_half_float_vertex;
GLboolean ARB_instanced_arrays;
+ GLboolean ARB_internalformat_query;
GLboolean ARB_map_buffer_alignment;
GLboolean ARB_map_buffer_range;
GLboolean ARB_occlusion_query;
diff --git a/mesalib/src/mesa/main/pack.c b/mesalib/src/mesa/main/pack.c
index 4f0caa763..d6a97b35a 100644
--- a/mesalib/src/mesa/main/pack.c
+++ b/mesalib/src/mesa/main/pack.c
@@ -3641,7 +3641,11 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
rgba[i][rDst] = ((p ) & 0x3ff) * rs;
rgba[i][gDst] = ((p >> 10) & 0x3ff) * gs;
rgba[i][bDst] = ((p >> 20) & 0x3ff) * bs;
- rgba[i][aDst] = ((p >> 30) ) * as;
+ if (aSrc < 0) {
+ rgba[i][aDst] = 1.0F;
+ } else {
+ rgba[i][aDst] = (p >> 30) * as;
+ }
}
}
else {
@@ -3652,7 +3656,11 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
rgba[i][rDst] = ((p ) & 0x3ff) * rs;
rgba[i][gDst] = ((p >> 10) & 0x3ff) * gs;
rgba[i][bDst] = ((p >> 20) & 0x3ff) * bs;
- rgba[i][aDst] = ((p >> 30) ) * as;
+ if (aSrc < 0) {
+ rgba[i][aDst] = 1.0F;
+ } else {
+ rgba[i][aDst] = (p >> 30) * as;
+ }
}
}
break;
diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c
index aa7c800d4..c48ba5be6 100644
--- a/mesalib/src/mesa/main/queryobj.c
+++ b/mesalib/src/mesa/main/queryobj.c
@@ -50,7 +50,20 @@ _mesa_new_query_object(struct gl_context *ctx, GLuint id)
q->Id = id;
q->Result = 0;
q->Active = GL_FALSE;
- q->Ready = GL_TRUE; /* correct, see spec */
+
+ /* This is to satisfy the language of the specification: "In the initial
+ * state of a query object, the result is available" (OpenGL 3.1 §
+ * 2.13).
+ */
+ q->Ready = GL_TRUE;
+
+ /* OpenGL 3.1 § 2.13 says about GenQueries, "These names are marked as
+ * used, but no object is associated with them until the first time they
+ * are used by BeginQuery." Since our implementation actually does
+ * allocate an object at this point, use a flag to indicate that this
+ * object has not yet been bound so should not be considered a query.
+ */
+ q->EverBound = GL_FALSE;
}
return q;
}
@@ -252,16 +265,22 @@ _mesa_DeleteQueries(GLsizei n, const GLuint *ids)
GLboolean GLAPIENTRY
_mesa_IsQuery(GLuint id)
{
+ struct gl_query_object *q;
+
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
if (MESA_VERBOSE & VERBOSE_API)
_mesa_debug(ctx, "glIsQuery(%u)\n", id);
- if (id && _mesa_lookup_query_object(ctx, id))
- return GL_TRUE;
- else
+ if (id == 0)
return GL_FALSE;
+
+ q = _mesa_lookup_query_object(ctx, id);
+ if (q == NULL)
+ return GL_FALSE;
+
+ return q->EverBound;
}
static GLboolean
@@ -354,6 +373,7 @@ _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id)
q->Active = GL_TRUE;
q->Result = 0;
q->Ready = GL_FALSE;
+ q->EverBound = GL_TRUE;
/* XXX should probably refcount query objects */
*bindpt = q;
diff --git a/mesalib/src/mesa/main/readpix.c b/mesalib/src/mesa/main/readpix.c
index d6d105bc4..5b80e9a8b 100644
--- a/mesalib/src/mesa/main/readpix.c
+++ b/mesalib/src/mesa/main/readpix.c
@@ -679,7 +679,7 @@ _mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLsizei bufSize,
GLvoid *pixels )
{
- GLenum err;
+ GLenum err = GL_NO_ERROR;
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
@@ -707,17 +707,21 @@ _mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height,
* preferred combination. This code doesn't know what that preferred
* combination is, and Mesa can handle anything valid. Just work instead.
*/
- if (_mesa_is_gles(ctx) && ctx->Version < 30) {
- err = _mesa_es_error_check_format_and_type(format, type, 2);
- if (err == GL_NO_ERROR) {
- if (type == GL_FLOAT || type == GL_HALF_FLOAT_OES) {
- err = GL_INVALID_OPERATION;
- } else if (format == GL_DEPTH_COMPONENT
- || format == GL_DEPTH_STENCIL) {
- err = GL_INVALID_ENUM;
+ if (_mesa_is_gles(ctx)) {
+ if (ctx->Version < 30) {
+ err = _mesa_es_error_check_format_and_type(format, type, 2);
+ if (err == GL_NO_ERROR) {
+ if (type == GL_FLOAT || type == GL_HALF_FLOAT_OES) {
+ err = GL_INVALID_OPERATION;
+ }
}
}
+ if (err == GL_NO_ERROR && (format == GL_DEPTH_COMPONENT
+ || format == GL_DEPTH_STENCIL)) {
+ err = GL_INVALID_ENUM;
+ }
+
if (err != GL_NO_ERROR) {
_mesa_error(ctx, err, "glReadPixels(invalid format %s and/or type %s)",
_mesa_lookup_enum_by_nr(format),
diff --git a/mesalib/src/mesa/main/teximage.c b/mesalib/src/mesa/main/teximage.c
index 7d3abb7e0..5e451e235 100644
--- a/mesalib/src/mesa/main/teximage.c
+++ b/mesalib/src/mesa/main/teximage.c
@@ -1893,23 +1893,30 @@ texture_error_check( struct gl_context *ctx,
* requires GL_OES_texture_float) are filtered elsewhere.
*/
- if (_mesa_is_gles(ctx) && !_mesa_is_gles3(ctx)) {
- if (format != internalFormat) {
+ if (_mesa_is_gles(ctx)) {
+ if (_mesa_is_gles3(ctx)) {
+ err = _mesa_es3_error_check_format_and_type(format, type,
+ internalFormat,
+ dimensions);
+ } else {
+ if (format != internalFormat) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glTexImage%dD(format = %s, internalFormat = %s)",
dimensions,
_mesa_lookup_enum_by_nr(format),
_mesa_lookup_enum_by_nr(internalFormat));
return GL_TRUE;
- }
+ }
- err = _mesa_es_error_check_format_and_type(format, type, dimensions);
+ err = _mesa_es_error_check_format_and_type(format, type, dimensions);
+ }
if (err != GL_NO_ERROR) {
_mesa_error(ctx, err,
- "glTexImage%dD(format = %s, type = %s)",
+ "glTexImage%dD(format = %s, type = %s, internalFormat = %s)",
dimensions,
_mesa_lookup_enum_by_nr(format),
- _mesa_lookup_enum_by_nr(type));
+ _mesa_lookup_enum_by_nr(type),
+ _mesa_lookup_enum_by_nr(internalFormat));
return GL_TRUE;
}
}
@@ -2340,6 +2347,8 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
GLint width, GLint height, GLint border )
{
GLint baseFormat;
+ struct gl_renderbuffer *rb;
+ GLenum rb_internal_format;
/* check target */
if (!legal_texsubimage_target(ctx, dimensions, target)) {
@@ -2384,6 +2393,13 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
return GL_TRUE;
}
+ rb = _mesa_get_read_renderbuffer_for_format(ctx, internalFormat);
+ if (rb == NULL) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glCopyTexImage%dD(read buffer)", dimensions);
+ return GL_TRUE;
+ }
+
/* OpenGL ES 1.x and OpenGL ES 2.0 impose additional restrictions on the
* internalFormat.
*/
@@ -2409,6 +2425,8 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
return GL_TRUE;
}
+ rb_internal_format = rb->InternalFormat;
+
if (!_mesa_source_buffer_exists(ctx, baseFormat)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glCopyTexImage%dD(missing readbuffer)", dimensions);
@@ -2423,13 +2441,20 @@ copytexture_error_check( struct gl_context *ctx, GLuint dimensions,
* integer format and the read color buffer is an integer format."
*/
if (_mesa_is_color_format(internalFormat)) {
- struct gl_renderbuffer *rb = ctx->ReadBuffer->_ColorReadBuffer;
-
- if (_mesa_is_enum_format_integer(rb->InternalFormat) !=
- _mesa_is_enum_format_integer(internalFormat)) {
- _mesa_error(ctx, GL_INVALID_OPERATION,
- "glCopyTexImage%dD(integer vs non-integer)", dimensions);
- return GL_TRUE;
+ bool is_int = _mesa_is_enum_format_integer(internalFormat);
+ bool is_rbint = _mesa_is_enum_format_integer(rb_internal_format);
+ if (is_int || is_rbint) {
+ if (is_int != is_rbint) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glCopyTexImage%dD(integer vs non-integer)", dimensions);
+ return GL_TRUE;
+ } else if (_mesa_is_gles(ctx) &&
+ _mesa_is_enum_format_unsigned_int(internalFormat) !=
+ _mesa_is_enum_format_unsigned_int(rb_internal_format)) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glCopyTexImage%dD(signed vs unsigned integer)", dimensions);
+ return GL_TRUE;
+ }
}
}
@@ -3340,9 +3365,7 @@ copyteximage(struct gl_context *ctx, GLuint dims,
border, internalFormat, texFormat);
/* Allocate texture memory (no pixel data yet) */
- ctx->Driver.TexImage(ctx, dims, texImage,
- GL_NONE, GL_NONE,
- NULL, &ctx->Unpack);
+ ctx->Driver.AllocTextureImageBuffer(ctx, texImage);
if (_mesa_clip_copytexsubimage(ctx, &dstX, &dstY, &srcX, &srcY,
&width, &height)) {
diff --git a/mesalib/src/mesa/main/texparam.c b/mesalib/src/mesa/main/texparam.c
index ca5a21f78..4d32fd6dd 100644
--- a/mesalib/src/mesa/main/texparam.c
+++ b/mesalib/src/mesa/main/texparam.c
@@ -662,21 +662,16 @@ _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param)
case GL_DEPTH_TEXTURE_MODE_ARB:
case GL_TEXTURE_SRGB_DECODE_EXT:
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
- {
- /* convert float param to int */
- GLint p[4];
- p[0] = (GLint) param;
- p[1] = p[2] = p[3] = 0;
- need_update = set_tex_parameteri(ctx, texObj, pname, p);
- }
- break;
case GL_TEXTURE_SWIZZLE_R_EXT:
case GL_TEXTURE_SWIZZLE_G_EXT:
case GL_TEXTURE_SWIZZLE_B_EXT:
case GL_TEXTURE_SWIZZLE_A_EXT:
{
GLint p[4];
- p[0] = (GLint) param;
+ p[0] = (param > 0) ?
+ ((param > INT_MAX) ? INT_MAX : (GLint) (param + 0.5)) :
+ ((param < INT_MIN) ? INT_MIN : (GLint) (param - 0.5));
+
p[1] = p[2] = p[3] = 0;
need_update = set_tex_parameteri(ctx, texObj, pname, p);
}
diff --git a/mesalib/src/mesa/main/varray.c b/mesalib/src/mesa/main/varray.c
index e453b3b0e..0f7e2a69b 100644
--- a/mesalib/src/mesa/main/varray.c
+++ b/mesalib/src/mesa/main/varray.c
@@ -151,21 +151,21 @@ update_array(struct gl_context *ctx,
}
if (_mesa_is_gles(ctx)) {
- /* Once Mesa gets support for GL_OES_vertex_half_float this mask will
- * change. Adding support for this extension isn't quite as trivial as
- * we'd like because ES uses a different enum value for GL_HALF_FLOAT.
- */
- legalTypesMask &= ~(FIXED_GL_BIT | HALF_BIT | DOUBLE_BIT);
+ legalTypesMask &= ~(FIXED_GL_BIT | DOUBLE_BIT);
/* GL_INT and GL_UNSIGNED_INT data is not allowed in OpenGL ES until
* 3.0. The 2_10_10_10 types are added in OpenGL ES 3.0 or
- * GL_OES_vertex_type_10_10_10_2.
+ * GL_OES_vertex_type_10_10_10_2. GL_HALF_FLOAT data is not allowed
+ * until 3.0 or with the GL_OES_vertex_half float extension, which isn't
+ * quite as trivial as we'd like because it uses a different enum value
+ * for GL_HALF_FLOAT_OES.
*/
if (ctx->Version < 30) {
legalTypesMask &= ~(UNSIGNED_INT_BIT
| INT_BIT
| UNSIGNED_INT_2_10_10_10_REV_BIT
- | INT_2_10_10_10_REV_BIT);
+ | INT_2_10_10_10_REV_BIT
+ | HALF_BIT);
}
/* BGRA ordering is not supported in ES contexts.
diff --git a/mesalib/src/mesa/sources.mak b/mesalib/src/mesa/sources.mak
index 8cde2c4cf..178ceb208 100644
--- a/mesalib/src/mesa/sources.mak
+++ b/mesalib/src/mesa/sources.mak
@@ -42,6 +42,7 @@ MAIN_FILES = \
$(SRCDIR)main/ffvertex_prog.c \
$(SRCDIR)main/ff_fragment_shader.cpp \
$(SRCDIR)main/fog.c \
+ $(SRCDIR)main/formatquery.c \
$(SRCDIR)main/formats.c \
$(SRCDIR)main/format_pack.c \
$(SRCDIR)main/format_unpack.c \
diff --git a/mesalib/src/mesa/state_tracker/st_atom_shader.c b/mesalib/src/mesa/state_tracker/st_atom_shader.c
index 45e7a117f..c1d7c80bb 100644
--- a/mesalib/src/mesa/state_tracker/st_atom_shader.c
+++ b/mesalib/src/mesa/state_tracker/st_atom_shader.c
@@ -59,7 +59,8 @@ get_passthrough_fs(struct st_context *st)
{
if (!st->passthrough_fs) {
st->passthrough_fs =
- util_make_fragment_passthrough_shader(st->pipe);
+ util_make_fragment_passthrough_shader(st->pipe, TGSI_SEMANTIC_COLOR,
+ TGSI_INTERPOLATE_PERSPECTIVE);
}
return st->passthrough_fs;
diff --git a/mesalib/src/mesa/state_tracker/st_cb_clear.c b/mesalib/src/mesa/state_tracker/st_cb_clear.c
index 4aa0bc18f..d01236e28 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_clear.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_clear.c
@@ -65,13 +65,10 @@
void
st_init_clear(struct st_context *st)
{
- struct pipe_screen *pscreen = st->pipe->screen;
-
memset(&st->clear, 0, sizeof(st->clear));
st->clear.raster.gl_rasterization_rules = 1;
st->clear.raster.depth_clip = 1;
- st->clear.enable_ds_separate = pscreen->get_param(pscreen, PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE);
}
@@ -99,7 +96,9 @@ static INLINE void
set_fragment_shader(struct st_context *st)
{
if (!st->clear.fs)
- st->clear.fs = util_make_fragment_passthrough_shader(st->pipe);
+ st->clear.fs =
+ util_make_fragment_passthrough_shader(st->pipe, TGSI_SEMANTIC_GENERIC,
+ TGSI_INTERPOLATE_CONSTANT);
cso_set_fragment_shader_handle(st->cso_context, st->clear.fs);
}
@@ -117,7 +116,7 @@ set_vertex_shader(struct st_context *st)
if (!st->clear.vs)
{
const uint semantic_names[] = { TGSI_SEMANTIC_POSITION,
- TGSI_SEMANTIC_COLOR };
+ TGSI_SEMANTIC_GENERIC };
const uint semantic_indexes[] = { 0, 0 };
st->clear.vs = util_make_vertex_passthrough_shader(st->pipe, 2,
semantic_names,
@@ -233,19 +232,24 @@ clear_with_quad(struct gl_context *ctx,
{
struct pipe_blend_state blend;
memset(&blend, 0, sizeof(blend));
- blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE;
- blend.rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
- blend.rt[0].rgb_dst_factor = PIPE_BLENDFACTOR_ZERO;
- blend.rt[0].alpha_dst_factor = PIPE_BLENDFACTOR_ZERO;
if (color) {
- if (ctx->Color.ColorMask[0][0])
- blend.rt[0].colormask |= PIPE_MASK_R;
- if (ctx->Color.ColorMask[0][1])
- blend.rt[0].colormask |= PIPE_MASK_G;
- if (ctx->Color.ColorMask[0][2])
- blend.rt[0].colormask |= PIPE_MASK_B;
- if (ctx->Color.ColorMask[0][3])
- blend.rt[0].colormask |= PIPE_MASK_A;
+ int num_buffers = ctx->Extensions.EXT_draw_buffers2 ?
+ ctx->DrawBuffer->_NumColorDrawBuffers : 1;
+ int i;
+
+ blend.independent_blend_enable = num_buffers > 1;
+
+ for (i = 0; i < num_buffers; i++) {
+ if (ctx->Color.ColorMask[i][0])
+ blend.rt[i].colormask |= PIPE_MASK_R;
+ if (ctx->Color.ColorMask[i][1])
+ blend.rt[i].colormask |= PIPE_MASK_G;
+ if (ctx->Color.ColorMask[i][2])
+ blend.rt[i].colormask |= PIPE_MASK_B;
+ if (ctx->Color.ColorMask[i][3])
+ blend.rt[i].colormask |= PIPE_MASK_A;
+ }
+
if (st->ctx->Color.DitherFlag)
blend.dither = 1;
}
@@ -333,113 +337,42 @@ clear_with_quad(struct gl_context *ctx,
/**
- * Determine if we need to clear the depth buffer by drawing a quad.
- */
-static INLINE GLboolean
-check_clear_color_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb)
-{
- if (ctx->Scissor.Enabled &&
- (ctx->Scissor.X != 0 ||
- ctx->Scissor.Y != 0 ||
- ctx->Scissor.Width < rb->Width ||
- ctx->Scissor.Height < rb->Height))
- return GL_TRUE;
-
- if (!ctx->Color.ColorMask[0][0] ||
- !ctx->Color.ColorMask[0][1] ||
- !ctx->Color.ColorMask[0][2] ||
- !ctx->Color.ColorMask[0][3])
- return GL_TRUE;
-
- return GL_FALSE;
-}
-
-
-/**
- * Determine if we need to clear the combiend depth/stencil buffer by
- * drawing a quad.
+ * Return if the scissor must be enabled during the clear.
*/
static INLINE GLboolean
-check_clear_depth_stencil_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb)
+is_scissor_enabled(struct gl_context *ctx, struct gl_renderbuffer *rb)
{
- const GLuint stencilMax = 0xff;
- GLboolean maskStencil
- = (ctx->Stencil.WriteMask[0] & stencilMax) != stencilMax;
-
- assert(_mesa_get_format_bits(rb->Format, GL_STENCIL_BITS) > 0);
-
- if (ctx->Scissor.Enabled &&
- (ctx->Scissor.X != 0 ||
- ctx->Scissor.Y != 0 ||
- ctx->Scissor.Width < rb->Width ||
- ctx->Scissor.Height < rb->Height))
- return GL_TRUE;
-
- if (maskStencil)
- return GL_TRUE;
-
- return GL_FALSE;
+ return ctx->Scissor.Enabled &&
+ (ctx->Scissor.X > 0 ||
+ ctx->Scissor.Y > 0 ||
+ ctx->Scissor.Width < rb->Width ||
+ ctx->Scissor.Height < rb->Height);
}
/**
- * Determine if we need to clear the depth buffer by drawing a quad.
+ * Return if any of the color channels are masked.
*/
static INLINE GLboolean
-check_clear_depth_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb,
- boolean ds_separate)
+is_color_masked(struct gl_context *ctx, int i)
{
- const struct st_renderbuffer *strb = st_renderbuffer(rb);
- const GLboolean isDS = util_format_is_depth_and_stencil(strb->surface->format);
-
- if (ctx->Scissor.Enabled &&
- (ctx->Scissor.X != 0 ||
- ctx->Scissor.Y != 0 ||
- ctx->Scissor.Width < rb->Width ||
- ctx->Scissor.Height < rb->Height))
- return GL_TRUE;
-
- if (!ds_separate && isDS && ctx->DrawBuffer->Visual.stencilBits > 0)
- return GL_TRUE;
-
- return GL_FALSE;
+ return !ctx->Color.ColorMask[i][0] ||
+ !ctx->Color.ColorMask[i][1] ||
+ !ctx->Color.ColorMask[i][2] ||
+ !ctx->Color.ColorMask[i][3];
}
/**
- * Determine if we need to clear the stencil buffer by drawing a quad.
+ * Return if any of the stencil bits are masked.
*/
static INLINE GLboolean
-check_clear_stencil_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb,
- boolean ds_separate)
+is_stencil_masked(struct gl_context *ctx, struct gl_renderbuffer *rb)
{
- const struct st_renderbuffer *strb = st_renderbuffer(rb);
- const GLboolean isDS = util_format_is_depth_and_stencil(strb->surface->format);
const GLuint stencilMax = 0xff;
- const GLboolean maskStencil
- = (ctx->Stencil.WriteMask[0] & stencilMax) != stencilMax;
assert(_mesa_get_format_bits(rb->Format, GL_STENCIL_BITS) > 0);
-
- if (maskStencil)
- return GL_TRUE;
-
- if (ctx->Scissor.Enabled &&
- (ctx->Scissor.X != 0 ||
- ctx->Scissor.Y != 0 ||
- ctx->Scissor.Width < rb->Width ||
- ctx->Scissor.Height < rb->Height))
- return GL_TRUE;
-
- /* This is correct, but it is necessary to look at the depth clear
- * value held in the surface when it comes time to issue the clear,
- * rather than taking depth and stencil clear values from the
- * current state.
- */
- if (!ds_separate && isDS && ctx->DrawBuffer->Visual.depthBits > 0)
- return GL_TRUE;
-
- return GL_FALSE;
+ return (ctx->Stencil.WriteMask[0] & stencilMax) != stencilMax;
}
@@ -449,8 +382,6 @@ check_clear_stencil_with_quad(struct gl_context *ctx, struct gl_renderbuffer *rb
static void
st_Clear(struct gl_context *ctx, GLbitfield mask)
{
- static const GLbitfield BUFFER_BITS_DS
- = (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL);
struct st_context *st = st_context(ctx);
struct gl_renderbuffer *depthRb
= ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
@@ -471,11 +402,13 @@ st_Clear(struct gl_context *ctx, GLbitfield mask)
struct gl_renderbuffer *rb
= ctx->DrawBuffer->Attachment[b].Renderbuffer;
struct st_renderbuffer *strb = st_renderbuffer(rb);
+ int colormask_index = ctx->Extensions.EXT_draw_buffers2 ? i : 0;
if (!strb || !strb->surface)
continue;
- if (check_clear_color_with_quad( ctx, rb ))
+ if (is_scissor_enabled(ctx, rb) ||
+ is_color_masked(ctx, colormask_index))
quad_buffers |= PIPE_CLEAR_COLOR;
else
clear_buffers |= PIPE_CLEAR_COLOR;
@@ -483,41 +416,25 @@ st_Clear(struct gl_context *ctx, GLbitfield mask)
}
}
- if ((mask & BUFFER_BITS_DS) == BUFFER_BITS_DS && depthRb == stencilRb) {
- /* clearing combined depth + stencil */
+ if (mask & BUFFER_BIT_DEPTH) {
struct st_renderbuffer *strb = st_renderbuffer(depthRb);
if (strb->surface) {
- if (check_clear_depth_stencil_with_quad(ctx, depthRb))
- quad_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
+ if (is_scissor_enabled(ctx, depthRb))
+ quad_buffers |= PIPE_CLEAR_DEPTH;
else
- clear_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
+ clear_buffers |= PIPE_CLEAR_DEPTH;
}
}
- else {
- /* separate depth/stencil clears */
- /* I don't think truly separate buffers are actually possible in gallium or hw? */
- if (mask & BUFFER_BIT_DEPTH) {
- struct st_renderbuffer *strb = st_renderbuffer(depthRb);
-
- if (strb->surface) {
- if (check_clear_depth_with_quad(ctx, depthRb,
- st->clear.enable_ds_separate))
- quad_buffers |= PIPE_CLEAR_DEPTH;
- else
- clear_buffers |= PIPE_CLEAR_DEPTH;
- }
- }
- if (mask & BUFFER_BIT_STENCIL) {
- struct st_renderbuffer *strb = st_renderbuffer(stencilRb);
+ if (mask & BUFFER_BIT_STENCIL) {
+ struct st_renderbuffer *strb = st_renderbuffer(stencilRb);
- if (strb->surface) {
- if (check_clear_stencil_with_quad(ctx, stencilRb,
- st->clear.enable_ds_separate))
- quad_buffers |= PIPE_CLEAR_STENCIL;
- else
- clear_buffers |= PIPE_CLEAR_STENCIL;
- }
+ if (strb->surface) {
+ if (is_scissor_enabled(ctx, stencilRb) ||
+ is_stencil_masked(ctx, stencilRb))
+ quad_buffers |= PIPE_CLEAR_STENCIL;
+ else
+ clear_buffers |= PIPE_CLEAR_STENCIL;
}
}
@@ -532,20 +449,8 @@ st_Clear(struct gl_context *ctx, GLbitfield mask)
quad_buffers & PIPE_CLEAR_DEPTH,
quad_buffers & PIPE_CLEAR_STENCIL);
} else if (clear_buffers) {
- /* driver cannot know it can clear everything if the buffer
- * is a combined depth/stencil buffer but this wasn't actually
- * required from the visual. Hence fix this up to avoid potential
- * read-modify-write in the driver.
- */
union pipe_color_union clearColor;
- if ((clear_buffers & PIPE_CLEAR_DEPTHSTENCIL) &&
- ((clear_buffers & PIPE_CLEAR_DEPTHSTENCIL) != PIPE_CLEAR_DEPTHSTENCIL) &&
- (depthRb == stencilRb) &&
- (ctx->DrawBuffer->Visual.depthBits == 0 ||
- ctx->DrawBuffer->Visual.stencilBits == 0))
- clear_buffers |= PIPE_CLEAR_DEPTHSTENCIL;
-
if (ctx->DrawBuffer->_ColorDrawBuffers[0]) {
struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0];
GLboolean is_integer = _mesa_is_enum_format_integer(rb->InternalFormat);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_fbo.c b/mesalib/src/mesa/state_tracker/st_cb_fbo.c
index bf206b025..d042ebabf 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_fbo.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_fbo.c
@@ -317,9 +317,11 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
break;
case PIPE_FORMAT_Z24_UNORM_S8_UINT:
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
+ strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
+ break;
case PIPE_FORMAT_Z24X8_UNORM:
case PIPE_FORMAT_X8Z24_UNORM:
- strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
+ strb->Base.InternalFormat = GL_DEPTH_COMPONENT24;
break;
case PIPE_FORMAT_S8_UINT:
strb->Base.InternalFormat = GL_STENCIL_INDEX8_EXT;
diff --git a/mesalib/src/mesa/state_tracker/st_context.h b/mesalib/src/mesa/state_tracker/st_context.h
index 2be74b452..70ee671d0 100644
--- a/mesalib/src/mesa/state_tracker/st_context.h
+++ b/mesalib/src/mesa/state_tracker/st_context.h
@@ -172,7 +172,6 @@ struct st_context
struct pipe_viewport_state viewport;
void *vs;
void *fs;
- boolean enable_ds_separate;
} clear;
/** used for anything using util_draw_vertex_buffer */
diff --git a/mesalib/src/mesa/swrast/s_blit.c b/mesalib/src/mesa/swrast/s_blit.c
index b0c56a40f..043b578a5 100644
--- a/mesalib/src/mesa/swrast/s_blit.c
+++ b/mesalib/src/mesa/swrast/s_blit.c
@@ -111,6 +111,11 @@ blit_nearest(struct gl_context *ctx,
GLbitfield buffer)
{
struct gl_renderbuffer *readRb, *drawRb;
+ struct gl_renderbuffer_attachment *readAtt, *drawAtt;
+ struct gl_framebuffer *readFb = ctx->ReadBuffer;
+ struct gl_framebuffer *drawFb = ctx->DrawBuffer;
+ GLint NumDrawBuffers = 0;
+ GLuint i;
const GLint srcWidth = ABS(srcX1 - srcX0);
const GLint dstWidth = ABS(dstX1 - dstX0);
@@ -146,21 +151,16 @@ blit_nearest(struct gl_context *ctx,
switch (buffer) {
case GL_COLOR_BUFFER_BIT:
- readRb = ctx->ReadBuffer->_ColorReadBuffer;
- drawRb = ctx->DrawBuffer->_ColorDrawBuffers[0];
-
- if (readRb->Format == drawRb->Format) {
- mode = DIRECT;
- pixelSize = _mesa_get_format_bytes(readRb->Format);
- } else {
- mode = UNPACK_RGBA_FLOAT;
- pixelSize = 16;
- }
-
+ readAtt = &readFb->Attachment[readFb->_ColorReadBufferIndex];
+ readRb = readFb->_ColorReadBuffer;
+ NumDrawBuffers = drawFb->_NumColorDrawBuffers;
break;
case GL_DEPTH_BUFFER_BIT:
- readRb = ctx->ReadBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
- drawRb = ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
+ readAtt = &readFb->Attachment[BUFFER_DEPTH];
+ drawAtt = &drawFb->Attachment[BUFFER_DEPTH];
+ readRb = readAtt->Renderbuffer;
+ drawRb = drawAtt->Renderbuffer;
+ NumDrawBuffers = 1;
/* Note that for depth/stencil, the formats of src/dst must match. By
* using the core helpers for pack/unpack, we avoid needing to handle
@@ -175,8 +175,11 @@ blit_nearest(struct gl_context *ctx,
pixelSize = 4;
break;
case GL_STENCIL_BUFFER_BIT:
- readRb = ctx->ReadBuffer->Attachment[BUFFER_STENCIL].Renderbuffer;
- drawRb = ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer;
+ readAtt = &readFb->Attachment[BUFFER_STENCIL];
+ drawAtt = &drawFb->Attachment[BUFFER_STENCIL];
+ readRb = readAtt->Renderbuffer;
+ drawRb = drawAtt->Renderbuffer;
+ NumDrawBuffers = 1;
mode = UNPACK_S;
pixelSize = 1;
break;
@@ -208,146 +211,167 @@ blit_nearest(struct gl_context *ctx,
return;
}
- if (readRb == drawRb) {
- /* map whole buffer for read/write */
- /* XXX we could be clever and just map the union region of the
- * source and dest rects.
- */
- GLubyte *map;
- GLint rowStride;
- GLint formatSize = _mesa_get_format_bytes(readRb->Format);
-
- ctx->Driver.MapRenderbuffer(ctx, readRb, 0, 0,
- readRb->Width, readRb->Height,
- GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
- &map, &rowStride);
- if (!map) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
- return;
+ /* Blit to all the draw buffers */
+ for (i = 0; i < NumDrawBuffers; i++) {
+ if (buffer == GL_COLOR_BUFFER_BIT) {
+ int idx = drawFb->_ColorDrawBufferIndexes[i];
+ if (idx == -1)
+ continue;
+ drawAtt = &drawFb->Attachment[idx];
+ drawRb = drawAtt->Renderbuffer;
+
+ if (readRb->Format == drawRb->Format) {
+ mode = DIRECT;
+ pixelSize = _mesa_get_format_bytes(readRb->Format);
+ } else {
+ mode = UNPACK_RGBA_FLOAT;
+ pixelSize = 16;
+ }
}
- srcMap = map + srcYpos * rowStride + srcXpos * formatSize;
- dstMap = map + dstYpos * rowStride + dstXpos * formatSize;
+ if ((readRb == drawRb) ||
+ (readAtt->Texture && drawAtt->Texture &&
+ (readAtt->Texture == drawAtt->Texture))) {
+ /* map whole buffer for read/write */
+ /* XXX we could be clever and just map the union region of the
+ * source and dest rects.
+ */
+ GLubyte *map;
+ GLint rowStride;
+ GLint formatSize = _mesa_get_format_bytes(readRb->Format);
+
+ ctx->Driver.MapRenderbuffer(ctx, readRb, 0, 0,
+ readRb->Width, readRb->Height,
+ GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
+ &map, &rowStride);
+ if (!map) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
+
+ srcMap = map + srcYpos * rowStride + srcXpos * formatSize;
+ dstMap = map + dstYpos * rowStride + dstXpos * formatSize;
- /* this handles overlapping copies */
- if (srcY0 < dstY0) {
- /* copy in reverse (top->down) order */
- srcMap += rowStride * (readRb->Height - 1);
- dstMap += rowStride * (readRb->Height - 1);
- srcRowStride = -rowStride;
- dstRowStride = -rowStride;
+ /* this handles overlapping copies */
+ if (srcY0 < dstY0) {
+ /* copy in reverse (top->down) order */
+ srcMap += rowStride * (readRb->Height - 1);
+ dstMap += rowStride * (readRb->Height - 1);
+ srcRowStride = -rowStride;
+ dstRowStride = -rowStride;
+ }
+ else {
+ /* copy in normal (bottom->up) order */
+ srcRowStride = rowStride;
+ dstRowStride = rowStride;
+ }
}
else {
- /* copy in normal (bottom->up) order */
- srcRowStride = rowStride;
- dstRowStride = rowStride;
+ /* different src/dst buffers */
+ ctx->Driver.MapRenderbuffer(ctx, readRb,
+ srcXpos, srcYpos,
+ srcWidth, srcHeight,
+ GL_MAP_READ_BIT, &srcMap, &srcRowStride);
+ if (!srcMap) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
+ ctx->Driver.MapRenderbuffer(ctx, drawRb,
+ dstXpos, dstYpos,
+ dstWidth, dstHeight,
+ GL_MAP_WRITE_BIT, &dstMap, &dstRowStride);
+ if (!dstMap) {
+ ctx->Driver.UnmapRenderbuffer(ctx, readRb);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
}
- }
- else {
- /* different src/dst buffers */
- ctx->Driver.MapRenderbuffer(ctx, readRb,
- srcXpos, srcYpos,
- srcWidth, srcHeight,
- GL_MAP_READ_BIT, &srcMap, &srcRowStride);
- if (!srcMap) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+
+ /* allocate the src/dst row buffers */
+ srcBuffer = malloc(pixelSize * srcWidth);
+ if (!srcBuffer) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFrameBufferEXT");
return;
}
- ctx->Driver.MapRenderbuffer(ctx, drawRb,
- dstXpos, dstYpos,
- dstWidth, dstHeight,
- GL_MAP_WRITE_BIT, &dstMap, &dstRowStride);
- if (!dstMap) {
- ctx->Driver.UnmapRenderbuffer(ctx, readRb);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ dstBuffer = malloc(pixelSize * dstWidth);
+ if (!dstBuffer) {
+ free(srcBuffer);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFrameBufferEXT");
return;
}
- }
- /* allocate the src/dst row buffers */
- srcBuffer = malloc(pixelSize * srcWidth);
- if (!srcBuffer) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFrameBufferEXT");
- return;
- }
- dstBuffer = malloc(pixelSize * dstWidth);
- if (!dstBuffer) {
- free(srcBuffer);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFrameBufferEXT");
- return;
- }
-
- for (dstRow = 0; dstRow < dstHeight; dstRow++) {
- GLint srcRow = (dstRow * srcHeight) / dstHeight;
- GLubyte *dstRowStart = dstMap + dstRowStride * dstRow;
+ for (dstRow = 0; dstRow < dstHeight; dstRow++) {
+ GLint srcRow = (dstRow * srcHeight) / dstHeight;
+ GLubyte *dstRowStart = dstMap + dstRowStride * dstRow;
- ASSERT(srcRow >= 0);
- ASSERT(srcRow < srcHeight);
+ ASSERT(srcRow >= 0);
+ ASSERT(srcRow < srcHeight);
- if (invertY) {
- srcRow = srcHeight - 1 - srcRow;
- }
+ if (invertY) {
+ srcRow = srcHeight - 1 - srcRow;
+ }
- /* get pixel row from source and resample to match dest width */
- if (prevY != srcRow) {
- GLubyte *srcRowStart = srcMap + srcRowStride * srcRow;
-
- switch (mode) {
- case DIRECT:
- memcpy(srcBuffer, srcRowStart, pixelSize * srcWidth);
- break;
- case UNPACK_RGBA_FLOAT:
- _mesa_unpack_rgba_row(readRb->Format, srcWidth, srcRowStart,
- srcBuffer);
- break;
- case UNPACK_Z_FLOAT:
- _mesa_unpack_float_z_row(readRb->Format, srcWidth, srcRowStart,
- srcBuffer);
- break;
- case UNPACK_Z_INT:
- _mesa_unpack_uint_z_row(readRb->Format, srcWidth, srcRowStart,
- srcBuffer);
- break;
- case UNPACK_S:
- _mesa_unpack_ubyte_stencil_row(readRb->Format, srcWidth,
- srcRowStart, srcBuffer);
- break;
- }
+ /* get pixel row from source and resample to match dest width */
+ if (prevY != srcRow) {
+ GLubyte *srcRowStart = srcMap + srcRowStride * srcRow;
+
+ switch (mode) {
+ case DIRECT:
+ memcpy(srcBuffer, srcRowStart, pixelSize * srcWidth);
+ break;
+ case UNPACK_RGBA_FLOAT:
+ _mesa_unpack_rgba_row(readRb->Format, srcWidth, srcRowStart,
+ srcBuffer);
+ break;
+ case UNPACK_Z_FLOAT:
+ _mesa_unpack_float_z_row(readRb->Format, srcWidth, srcRowStart,
+ srcBuffer);
+ break;
+ case UNPACK_Z_INT:
+ _mesa_unpack_uint_z_row(readRb->Format, srcWidth, srcRowStart,
+ srcBuffer);
+ break;
+ case UNPACK_S:
+ _mesa_unpack_ubyte_stencil_row(readRb->Format, srcWidth,
+ srcRowStart, srcBuffer);
+ break;
+ }
- (*resampleRow)(srcWidth, dstWidth, srcBuffer, dstBuffer, invertX);
- prevY = srcRow;
- }
+ (*resampleRow)(srcWidth, dstWidth, srcBuffer, dstBuffer, invertX);
+ prevY = srcRow;
+ }
- /* store pixel row in destination */
- switch (mode) {
- case DIRECT:
- memcpy(dstRowStart, dstBuffer, pixelSize * srcWidth);
- break;
- case UNPACK_RGBA_FLOAT:
- _mesa_pack_float_rgba_row(drawRb->Format, dstWidth, dstBuffer,
- dstRowStart);
- break;
- case UNPACK_Z_FLOAT:
- _mesa_pack_float_z_row(drawRb->Format, dstWidth, dstBuffer,
- dstRowStart);
- break;
- case UNPACK_Z_INT:
- _mesa_pack_uint_z_row(drawRb->Format, dstWidth, dstBuffer,
- dstRowStart);
- break;
- case UNPACK_S:
- _mesa_pack_ubyte_stencil_row(drawRb->Format, dstWidth, dstBuffer,
- dstRowStart);
- break;
+ /* store pixel row in destination */
+ switch (mode) {
+ case DIRECT:
+ memcpy(dstRowStart, dstBuffer, pixelSize * srcWidth);
+ break;
+ case UNPACK_RGBA_FLOAT:
+ _mesa_pack_float_rgba_row(drawRb->Format, dstWidth, dstBuffer,
+ dstRowStart);
+ break;
+ case UNPACK_Z_FLOAT:
+ _mesa_pack_float_z_row(drawRb->Format, dstWidth, dstBuffer,
+ dstRowStart);
+ break;
+ case UNPACK_Z_INT:
+ _mesa_pack_uint_z_row(drawRb->Format, dstWidth, dstBuffer,
+ dstRowStart);
+ break;
+ case UNPACK_S:
+ _mesa_pack_ubyte_stencil_row(drawRb->Format, dstWidth, dstBuffer,
+ dstRowStart);
+ break;
+ }
}
- }
- free(srcBuffer);
- free(dstBuffer);
+ free(srcBuffer);
+ free(dstBuffer);
- ctx->Driver.UnmapRenderbuffer(ctx, readRb);
- if (drawRb != readRb) {
- ctx->Driver.UnmapRenderbuffer(ctx, drawRb);
+ ctx->Driver.UnmapRenderbuffer(ctx, readRb);
+ if (drawRb != readRb) {
+ ctx->Driver.UnmapRenderbuffer(ctx, drawRb);
+ }
}
}
@@ -489,8 +513,13 @@ blit_linear(struct gl_context *ctx,
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1)
{
- struct gl_renderbuffer *readRb = ctx->ReadBuffer->_ColorReadBuffer;
- struct gl_renderbuffer *drawRb = ctx->DrawBuffer->_ColorDrawBuffers[0];
+ struct gl_framebuffer *drawFb = ctx->DrawBuffer;
+ struct gl_renderbuffer *drawRb = NULL;
+ struct gl_renderbuffer_attachment *drawAtt = NULL;
+ struct gl_framebuffer *readFb = ctx->ReadBuffer;
+ struct gl_renderbuffer *readRb = readFb->_ColorReadBuffer;
+ struct gl_renderbuffer_attachment *readAtt =
+ &readFb->Attachment[readFb->_ColorReadBufferIndex];
const GLint srcWidth = ABS(srcX1 - srcX0);
const GLint dstWidth = ABS(dstX1 - dstX0);
@@ -521,6 +550,7 @@ blit_linear(struct gl_context *ctx,
GLubyte *srcMap, *dstMap;
GLint srcRowStride, dstRowStride;
+ GLuint i;
/* Determine datatype for resampling */
@@ -556,151 +586,160 @@ blit_linear(struct gl_context *ctx,
return;
}
- /*
- * Map src / dst renderbuffers
- */
- if (readRb == drawRb) {
- /* map whole buffer for read/write */
- ctx->Driver.MapRenderbuffer(ctx, readRb,
- 0, 0, readRb->Width, readRb->Height,
- GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
- &srcMap, &srcRowStride);
- if (!srcMap) {
- free(srcBuffer0);
- free(srcBuffer1);
- free(dstBuffer);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
- return;
- }
-
- dstMap = srcMap;
- dstRowStride = srcRowStride;
- }
- else {
- /* different src/dst buffers */
- /* XXX with a bit of work we could just map the regions to be
- * read/written instead of the whole buffers.
+ for (i = 0; i < drawFb->_NumColorDrawBuffers; i++) {
+ int idx = drawFb->_ColorDrawBufferIndexes[i];
+ if (idx == -1)
+ continue;
+ drawAtt = &drawFb->Attachment[idx];
+ drawRb = drawAtt->Renderbuffer;
+ /*
+ * Map src / dst renderbuffers
*/
- ctx->Driver.MapRenderbuffer(ctx, readRb,
- 0, 0, readRb->Width, readRb->Height,
- GL_MAP_READ_BIT, &srcMap, &srcRowStride);
- if (!srcMap) {
- free(srcBuffer0);
- free(srcBuffer1);
- free(dstBuffer);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
- return;
+ if ((readRb == drawRb) ||
+ (readAtt->Texture && drawAtt->Texture &&
+ (readAtt->Texture = drawAtt->Texture))) {
+ /* map whole buffer for read/write */
+ ctx->Driver.MapRenderbuffer(ctx, readRb,
+ 0, 0, readRb->Width, readRb->Height,
+ GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
+ &srcMap, &srcRowStride);
+ if (!srcMap) {
+ free(srcBuffer0);
+ free(srcBuffer1);
+ free(dstBuffer);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
+
+ dstMap = srcMap;
+ dstRowStride = srcRowStride;
}
- ctx->Driver.MapRenderbuffer(ctx, drawRb,
- 0, 0, drawRb->Width, drawRb->Height,
- GL_MAP_WRITE_BIT, &dstMap, &dstRowStride);
- if (!dstMap) {
- ctx->Driver.UnmapRenderbuffer(ctx, readRb);
- free(srcBuffer0);
- free(srcBuffer1);
- free(dstBuffer);
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
- return;
+ else {
+ /* different src/dst buffers */
+ /* XXX with a bit of work we could just map the regions to be
+ * read/written instead of the whole buffers.
+ */
+ ctx->Driver.MapRenderbuffer(ctx, readRb,
+ 0, 0, readRb->Width, readRb->Height,
+ GL_MAP_READ_BIT, &srcMap, &srcRowStride);
+ if (!srcMap) {
+ free(srcBuffer0);
+ free(srcBuffer1);
+ free(dstBuffer);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
+ ctx->Driver.MapRenderbuffer(ctx, drawRb,
+ 0, 0, drawRb->Width, drawRb->Height,
+ GL_MAP_WRITE_BIT, &dstMap, &dstRowStride);
+ if (!dstMap) {
+ ctx->Driver.UnmapRenderbuffer(ctx, readRb);
+ free(srcBuffer0);
+ free(srcBuffer1);
+ free(dstBuffer);
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "glBlitFramebuffer");
+ return;
+ }
}
- }
- for (dstRow = 0; dstRow < dstHeight; dstRow++) {
- const GLint dstY = dstYpos + dstRow;
- const GLfloat srcRow = (dstRow * srcHeight) / dstHeightF;
- GLint srcRow0 = IFLOOR(srcRow);
- GLint srcRow1 = srcRow0 + 1;
- GLfloat rowWeight = srcRow - srcRow0; /* fractional part of srcRow */
+ for (dstRow = 0; dstRow < dstHeight; dstRow++) {
+ const GLint dstY = dstYpos + dstRow;
+ const GLfloat srcRow = (dstRow * srcHeight) / dstHeightF;
+ GLint srcRow0 = IFLOOR(srcRow);
+ GLint srcRow1 = srcRow0 + 1;
+ GLfloat rowWeight = srcRow - srcRow0; /* fractional part of srcRow */
- ASSERT(srcRow >= 0);
- ASSERT(srcRow < srcHeight);
+ ASSERT(srcRow >= 0);
+ ASSERT(srcRow < srcHeight);
- if (srcRow1 == srcHeight) {
- /* last row fudge */
- srcRow1 = srcRow0;
- rowWeight = 0.0;
- }
+ if (srcRow1 == srcHeight) {
+ /* last row fudge */
+ srcRow1 = srcRow0;
+ rowWeight = 0.0;
+ }
- if (invertY) {
- srcRow0 = srcHeight - 1 - srcRow0;
- srcRow1 = srcHeight - 1 - srcRow1;
- }
+ if (invertY) {
+ srcRow0 = srcHeight - 1 - srcRow0;
+ srcRow1 = srcHeight - 1 - srcRow1;
+ }
- srcY0 = srcYpos + srcRow0;
- srcY1 = srcYpos + srcRow1;
+ srcY0 = srcYpos + srcRow0;
+ srcY1 = srcYpos + srcRow1;
- /* get the two source rows */
- if (srcY0 == srcBufferY0 && srcY1 == srcBufferY1) {
- /* use same source row buffers again */
- }
- else if (srcY0 == srcBufferY1) {
- /* move buffer1 into buffer0 by swapping pointers */
- GLvoid *tmp = srcBuffer0;
- srcBuffer0 = srcBuffer1;
- srcBuffer1 = tmp;
- /* get y1 row */
- {
- GLubyte *src = srcMap + srcY1 * srcRowStride + srcXpos * bpp;
- if (pixelType == GL_UNSIGNED_BYTE) {
- _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
- src, srcBuffer1);
+ /* get the two source rows */
+ if (srcY0 == srcBufferY0 && srcY1 == srcBufferY1) {
+ /* use same source row buffers again */
+ }
+ else if (srcY0 == srcBufferY1) {
+ /* move buffer1 into buffer0 by swapping pointers */
+ GLvoid *tmp = srcBuffer0;
+ srcBuffer0 = srcBuffer1;
+ srcBuffer1 = tmp;
+ /* get y1 row */
+ {
+ GLubyte *src = srcMap + srcY1 * srcRowStride + srcXpos * bpp;
+ if (pixelType == GL_UNSIGNED_BYTE) {
+ _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
+ src, srcBuffer1);
+ }
+ else {
+ _mesa_unpack_rgba_row(readFormat, srcWidth,
+ src, srcBuffer1);
+ }
}
- else {
- _mesa_unpack_rgba_row(readFormat, srcWidth,
- src, srcBuffer1);
+ srcBufferY0 = srcY0;
+ srcBufferY1 = srcY1;
+ }
+ else {
+ /* get both new rows */
+ {
+ GLubyte *src0 = srcMap + srcY0 * srcRowStride + srcXpos * bpp;
+ GLubyte *src1 = srcMap + srcY1 * srcRowStride + srcXpos * bpp;
+ if (pixelType == GL_UNSIGNED_BYTE) {
+ _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
+ src0, srcBuffer0);
+ _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
+ src1, srcBuffer1);
+ }
+ else {
+ _mesa_unpack_rgba_row(readFormat, srcWidth, src0, srcBuffer0);
+ _mesa_unpack_rgba_row(readFormat, srcWidth, src1, srcBuffer1);
+ }
}
- }
- srcBufferY0 = srcY0;
- srcBufferY1 = srcY1;
- }
- else {
- /* get both new rows */
+ srcBufferY0 = srcY0;
+ srcBufferY1 = srcY1;
+ }
+
+ if (pixelType == GL_UNSIGNED_BYTE) {
+ resample_linear_row_ub(srcWidth, dstWidth, srcBuffer0, srcBuffer1,
+ dstBuffer, invertX, rowWeight);
+ }
+ else {
+ resample_linear_row_float(srcWidth, dstWidth, srcBuffer0, srcBuffer1,
+ dstBuffer, invertX, rowWeight);
+ }
+
+ /* store pixel row in destination */
{
- GLubyte *src0 = srcMap + srcY0 * srcRowStride + srcXpos * bpp;
- GLubyte *src1 = srcMap + srcY1 * srcRowStride + srcXpos * bpp;
+ GLubyte *dst = dstMap + dstY * dstRowStride + dstXpos * bpp;
if (pixelType == GL_UNSIGNED_BYTE) {
- _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
- src0, srcBuffer0);
- _mesa_unpack_ubyte_rgba_row(readFormat, srcWidth,
- src1, srcBuffer1);
+ _mesa_pack_ubyte_rgba_row(drawFormat, dstWidth, dstBuffer, dst);
}
else {
- _mesa_unpack_rgba_row(readFormat, srcWidth, src0, srcBuffer0);
- _mesa_unpack_rgba_row(readFormat, srcWidth, src1, srcBuffer1);
+ _mesa_pack_float_rgba_row(drawFormat, dstWidth, dstBuffer, dst);
}
}
- srcBufferY0 = srcY0;
- srcBufferY1 = srcY1;
}
- if (pixelType == GL_UNSIGNED_BYTE) {
- resample_linear_row_ub(srcWidth, dstWidth, srcBuffer0, srcBuffer1,
- dstBuffer, invertX, rowWeight);
- }
- else {
- resample_linear_row_float(srcWidth, dstWidth, srcBuffer0, srcBuffer1,
- dstBuffer, invertX, rowWeight);
- }
+ free(srcBuffer0);
+ free(srcBuffer1);
+ free(dstBuffer);
- /* store pixel row in destination */
- {
- GLubyte *dst = dstMap + dstY * dstRowStride + dstXpos * bpp;
- if (pixelType == GL_UNSIGNED_BYTE) {
- _mesa_pack_ubyte_rgba_row(drawFormat, dstWidth, dstBuffer, dst);
- }
- else {
- _mesa_pack_float_rgba_row(drawFormat, dstWidth, dstBuffer, dst);
- }
+ ctx->Driver.UnmapRenderbuffer(ctx, readRb);
+ if (drawRb != readRb) {
+ ctx->Driver.UnmapRenderbuffer(ctx, drawRb);
}
}
-
- free(srcBuffer0);
- free(srcBuffer1);
- free(dstBuffer);
-
- ctx->Driver.UnmapRenderbuffer(ctx, readRb);
- if (drawRb != readRb) {
- ctx->Driver.UnmapRenderbuffer(ctx, drawRb);
- }
}
diff --git a/xorg-server/xkeyboard-config/configure.ac b/xorg-server/xkeyboard-config/configure.ac
index c92d8d557..e3d2abfe4 100644
--- a/xorg-server/xkeyboard-config/configure.ac
+++ b/xorg-server/xkeyboard-config/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(xkeyboard-config, 2.7)
+AC_INIT(xkeyboard-config, 2.7.99)
AC_CONFIG_SRCDIR(rules/base.xml.in)
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
diff --git a/xorg-server/xkeyboard-config/geometry/sun b/xorg-server/xkeyboard-config/geometry/sun
index 4b7126d45..23bd3bf02 100644
--- a/xorg-server/xkeyboard-config/geometry/sun
+++ b/xorg-server/xkeyboard-config/geometry/sun
@@ -1,3 +1,4 @@
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
//Copyright 1996, 1998 The Open Group
//
@@ -23,2262 +24,6 @@
//other dealings in this Software without prior written authorization
//from The Open Group.
//
-// ---------------------------------------------------------------------------
-// Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice (including the next
-// paragraph) shall be included in all copies or substantial portions of the
-// Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-//
-// ---------------------------------------------------------------------------
-//
-xkb_geometry "type4" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type4 US
- // keyboard.
-
- description= "Sun Type4 keyboard";
-
- width= 452;
- height= 185;
-
- shape "EDGE" { cornerRadius= 2, { [ 452, 185 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "DELE" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,19], [ 0,19] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,18], [ 1,18] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 41,18] }, { [2,1], [39,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [170,18] }, { [2,1], [168,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 17;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
-
- section "Alpha" {
- top= 58;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <FK01>, 9 }, <FK02>, <FK03>, <FK04>,
- <FK05>, <FK06>, <FK07>, <FK08>,
- <FK09>, <FK10>, <FK11>, <FK12>,
- <BKSL>, { <DELE>, "DELE" },
- { <PAUS>, 9 }, <PRSC>, <SCLK>, <NMLK>
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <ESC>, 9 },
- <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
- <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
- <AE11>, <AE12>,
- { <BKSP>, "BKSP" },
- { <KPEQ>, 9 }, <KPDV>, <KPMU>, <KPSU>
-
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>,
- { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>, { <RTRN>, "RTRN" },
- { <KP7>, 9 }, <KP8>, <KP9>, { <KPAD>, "KPAD" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>,
- { <LCTL>, 9, shape="LCTL" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <TLDE>,
- { <KP4>, 33 }, <KP5>, <KP6>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>,
- { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH" }, <LNFD>,
- { <KP1>, 9} , <KP2>, <KP3>, { <KPEN>, "KPAD" }
- };
- };
- row {
- top= 96;
- keys { { <HELP>, "HELP" }, { <CAPS>, 9 },
- <LALT>, <LMTA>, { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>,
- { <KP0>, 9, shape="KP0" }, <KPDL>
- };
- };
- }; // End of "Alpha" section
-
- shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } };
- shape "LED" { cornerRadius= 0, { [ 7, 4 ] } };
- solid "LedPanel" {
- shape= "LEDS";
- top= 28;
- left= 358;
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.top= 43;
- indicator.shape= "LED";
- indicator "Caps Lock" { left= 364; };
- indicator "Compose" { left= 383; };
- indicator "Scroll Lock" { left= 402; };
- indicator "Num Lock" { left= 421; };
- text.top= 34;
- text.color= "black";
- text "CapsLockLabel" { left= 364; text="Caps\nLock"; };
- text "ComposeLabel" { left= 380; text="Compose"; };
- text "ScrollLockLabel" { left= 402; text="Scroll\nLock"; };
- text "NumLockLabel" { left= 421; text="Num\nLock"; };
-};
-
-xkb_geometry "type4tuv" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type4 TUV
- // (European) keyboard with an extra key between the Shift_L
- // and the Z keys, and two keys above the Bksp key, instead
- // of a large delete key.
-
- description= "Sun Type4tuv keyboard";
-
- width= 452;
- height= 185;
-
- shape "EDGE" { cornerRadius= 2, { [ 452, 185 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
-
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,19], [ 0,19] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,18], [ 1,18] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [170,18] }, { [2,1], [168,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 17;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
-
- section "Alpha" {
- top= 58;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <FK01>, 9 }, <FK02>, <FK03>, <FK04>,
- <FK05>, <FK06>, <FK07>, <FK08>,
- <FK09>, <FK10>, <FK11>, <FK12>,
- <BKSL>, <BRCR>,<DELE>,
- { <PAUS>, 9 }, <PRSC>, <SCLK>, <NMLK>
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <ESC>, 9 },
- <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
- <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
- <AE11>, <AE12>,
- { <BKSP>, "BKSP" },
- { <KPEQ>, 9 }, <KPDV>, <KPMU>, <KPSU>
-
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>,
- { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>, { <RTRN>, "RTRN" },
- { <KP7>, 9 }, <KP8>, <KP9>, { <KPAD>, "KPAD" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>,
- { <LCTL>, 9, shape="LCTL" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <TLDE>,
- { <KP4>, 33 }, <KP5>, <KP6>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>,
- { <LFSH>, 9 }, <LSGT>,
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH" }, <LNFD>,
- { <KP1>, 9} , <KP2>, <KP3>, { <KPEN>, "KPAD" }
- };
- };
- row {
- top= 96;
- keys { { <HELP>, "HELP" }, { <CAPS>, 9 },
- <LALT>, <LMTA>, { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>,
- { <KP0>, 9, shape="KP0" }, <KPDL>
- };
- };
- }; // End of "Alpha" section
-
- shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } };
- shape "LED" { cornerRadius= 0, { [ 7, 4 ] } };
- solid "LedPanel" {
- shape= "LEDS";
- top= 28;
- left= 358;
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.top= 43;
- indicator.shape= "LED";
- indicator "CapsLock" { left= 364; };
- indicator "Compose" { left= 383; };
- indicator "ScrollLock" { left= 402; };
- indicator "NumLock" { left= 421; };
- text.top= 34;
- text.color= "black";
- text "CapsLockLabel" { left= 364; text="Caps\nLock"; };
- text "ComposeLabel" { left= 380; text="Compose"; };
- text "ScrollLockLabel" { left= 402; text="Scroll\nLock"; };
- text "NumLockLabel" { left= 421; text="Num\nLock"; };
-};
-
-xkb_geometry "type4_ca" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type4
- // Canadian and British keyboard with an extra key between
- // the Shift_L
- // and the Z keys.
-
- description= "Sun Type4_uk keyboard";
-
- width= 452;
- height= 185;
-
- shape "EDGE" { cornerRadius= 2, { [ 452, 185 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "DELE" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,19], [ 0,19] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,18], [ 1,18] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [170,18] }, { [2,1], [168,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 17;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
-
- section "Alpha" {
- top= 58;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <FK01>, 9 }, <FK02>, <FK03>, <FK04>,
- <FK05>, <FK06>, <FK07>, <FK08>,
- <FK09>, <FK10>, <FK11>, <FK12>,
- <BKSL>, { <DELE>, "DELE" },
- { <PAUS>, 9 }, <PRSC>, <SCLK>, <NMLK>
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <ESC>, 9 },
- <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
- <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
- <AE11>, <AE12>,
- { <BKSP>, "BKSP" },
- { <KPEQ>, 9 }, <KPDV>, <KPMU>, <KPSU>
-
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>,
- { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>, { <RTRN>, "RTRN" },
- { <KP7>, 9 }, <KP8>, <KP9>, { <KPAD>, "KPAD" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>,
- { <LCTL>, 9, shape="LCTL" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <TLDE>,
- { <KP4>, 33 }, <KP5>, <KP6>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>,
- { <LFSH>, 9 }, <LSGT>,
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH" }, <LNFD>,
- { <KP1>, 9} , <KP2>, <KP3>, { <KPEN>, "KPAD" }
- };
- };
- row {
- top= 96;
- keys { { <HELP>, "HELP" }, { <CAPS>, 9 },
- <LALT>, <LMTA>, { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>,
- { <KP0>, 9, shape="KP0" }, <KPDL>
- };
- };
- }; // End of "Alpha" section
-
- shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } };
- shape "LED" { cornerRadius= 0, { [ 7, 4 ] } };
- solid "LedPanel" {
- shape= "LEDS";
- top= 28;
- left= 358;
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.top= 43;
- indicator.shape= "LED";
- indicator "CapsLock" { left= 364; };
- indicator "Compose" { left= 383; };
- indicator "ScrollLock" { left= 402; };
- indicator "NumLock" { left= 421; };
- text.top= 34;
- text.color= "black";
- text "CapsLockLabel" { left= 364; text="Caps\nLock"; };
- text "ComposeLabel" { left= 380; text="Compose"; };
- text "ScrollLockLabel" { left= 402; text="Scroll\nLock"; }
-;
- text "NumLockLabel" { left= 421; text="Num\nLock"; };
-};
-
-xkb_geometry "type4jp" {
-
- // This is an approximate layout for a Japanese Sun Type4
- // keyboard, based on the European TUV keyboard. It has two keys
- // above the Bksp key, instead of a large delete key, but lacks
- // the extra key between Shift_L and Z.
-
- description= "Sun Japanese Type4 keyboard";
-
- width= 452;
- height= 185;
-
- shape "EDGE" { cornerRadius= 2, { [ 452, 185 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
-
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,19], [ 0,19] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,18], [ 1,18] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [ 97,18] }, { [2,1], [95,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LFSH" { { [ 41,18] }, { [2,1], [39,17] } };
- shape "KANJ" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "EXEC" { { [ 27,18] }, { [2,1], [25,17] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 17;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
-
- section "Alpha" {
- top= 58;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <FK01>, 9 }, <FK02>, <FK03>, <FK04>,
- <FK05>, <FK06>, <FK07>, <FK08>,
- <FK09>, <FK10>, <FK11>, <FK12>,
- <BKSL>, <BRCR>,<DELE>,
- { <PAUS>, 9 }, <PRSC>, <SCLK>, <NMLK>
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <ESC>, 9 },
- <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
- <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
- <AE11>, <AE12>,
- { <BKSP>, "BKSP" },
- { <KPEQ>, 9 }, <KPDV>, <KPMU>, <KPSU>
-
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>,
- { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>, { <RTRN>, "RTRN" },
- { <KP7>, 9 }, <KP8>, <KP9>, { <KPAD>, "KPAD" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>,
- { <LCTL>, 9, shape="LCTL" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <TLDE>,
- { <KP4>, 33 }, <KP5>, <KP6>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>,
- { <LFSH>, 9, shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- <LNFD>, { <RTSH>, "RTSH" },
- { <KP1>, 9} , <KP2>, <KP3>, { <KPEN>, "KPAD" }
- };
- };
- row {
- top= 96;
- keys { { <HELP>, "HELP" }, { <CAPS>, 9 },
- <LALT>, <LMTA>, { <EXEC>, "EXEC"} , { <SPCE>, "SPCE" },
- { <KANJ>, "KANJ" }, <HENK>, <RMTA>, <COMP>, <ALGR>,
- { <KP0>, 9, shape="KP0" }, <KPDL>
- };
- };
- }; // End of "Alpha" section
-
- shape "LEDS" { cornerRadius= 0, { [ 78 ,21 ] } };
- shape "LED" { cornerRadius= 0, { [ 7, 4 ] } };
- solid "LedPanel" {
- shape= "LEDS";
- top= 28;
- left= 358;
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.top= 43;
- indicator.shape= "LED";
- indicator "CapsLock" { left= 364; };
- indicator "Compose" { left= 383; };
- indicator "ScrollLock" { left= 402; };
- indicator "NumLock" { left= 421; };
- text.top= 34;
- text.color= "black";
- text "CapsLockLabel" { left= 364; text="Caps\nLock"; };
- text "ComposeLabel" { left= 380; text="Compose"; };
- text "ScrollLockLabel" { left= 402; text="Scroll\nLock"; };
- text "NumLockLabel" { left= 421; text="Num\nLock"; };
-};
-
-xkb_geometry "t5" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type5
- // keyboard. I just took a similar layout (101 key PC keyboard)
- // and adjusted the sizes.
-
- width= 515;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [156,18] }, { [2,1], [154,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 19 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
- { <PRSC>, 9 }, <SCLK>, <PAUS>,
- { <MUTE>, 9 }, <VOL->, <VOL+>, <POWR>
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <BKSL>, "BKSL" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH", color="grey20" }
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9, shape="LCTL" },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- top= 61;
- left= 420;
- row {
- top= 1;
- keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> };
- };
- row {
- top= 20;
- keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD", color= "grey20" } };
- };
- row {
- top= 39;
- keys { <KP4>, <KP5>, <KP6> };
- };
- row {
- top= 58;
- keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD", color= "grey20" } };
- };
- row {
- top= 77;
- keys { { <KP0>, "KP0" }, <KPDL> };
- };
- }; // End of "Keypad" section
-};
-
-xkb_geometry "t5tuv" {
-
- // This is an approximate layout for a TUV/European Sun Type5 keyboard.
-
- width= 515;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,18], [ 0,18] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,17], [ 1,17] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 24,18] }, { [2,1], [22,17] } };
- shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [157,18] }, { [2,1], [155,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 19 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
- { <PRSC>, 9 }, <SCLK>, <PAUS>,
- { <MUTE>, 9 }, <VOL->, <VOL+>, <POWR>
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <BKSL>
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" }, <LSGT>,
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH" }
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9, shape="LCTL" },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- top= 61;
- left= 420;
- row {
- top= 1;
- keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> };
- };
- row {
- top= 20;
- keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD" } };
- };
- row {
- top= 39;
- keys { <KP4>, <KP5>, <KP6> };
- };
- row {
- top= 58;
- keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD" } };
- };
- row {
- top= 77;
- keys { { <KP0>, "KP0" }, <KPDL> };
- };
- }; // End of "Keypad" section
-};
-
-
-xkb_geometry "t5jp" {
-
- // This is an approximate layout for a Japanese Sun Type5 keyboard.
-
- width= 515;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "KANJ" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "EXEC" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,18], [ 0,18] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,17], [ 1,17] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [ 97,18] }, { [2,1], [95,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 19 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
- { <PRSC>, 9 }, <SCLK>, <PAUS>,
- { <MUTE>, 9 }, <VOL->, <VOL+>, <POWR>
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <BKSL>
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <UNDR>,
- { <RTSH>, "RTSH", color="grey20" }
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9 },
- <LALT>, <LMTA>, { <EXEC>, "EXEC" },
- { <SPCE>, "SPCE" }, { <KANJ>, "KANJ" }, <HENK>,
- <RMTA>, <COMP>, <ALGR>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- top= 61;
- left= 420;
- row {
- top= 1;
- keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> };
- };
- row {
- top= 20;
- keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD", color= "grey20" } };
- };
- row {
- top= 39;
- keys { <KP4>, <KP5>, <KP6> };
- };
- row {
- top= 58;
- keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD", color= "grey20" } };
- };
- row {
- top= 77;
- keys { { <KP0>, "KP0" }, <KPDL> };
- };
- }; // End of "Keypad" section
-};
-
-xkb_geometry "t5unix" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type5
- // keyboard. I just took a similar layout (101 key PC keyboard)
- // and adjusted the sizes.
-
- width= 515;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 515, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "BKSL" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "RTSH" { { [ 51,18] }, { [2,1], [49,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [157,18] }, { [2,1], [155,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <NONE>, 9 },
- { <FK01>, 19 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
- { <PRSC>, 9 }, <SCLK>, <PAUS>,
- { <MUTE>, 9 }, <VOL->, <VOL+>, <POWR>
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <ESC>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- <BKSL>, <TLDE>
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <BKSP>, "BKSP" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <LCTL>, 9, shape="LCTL" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH", color="grey20" }
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <CAPS>, 9, shape="CAPS" },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <ALGR>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- top= 61;
- left= 420;
- row {
- top= 1;
- keys { <NMLK>, <KPDV>, <KPMU>, <KPSU> };
- };
- row {
- top= 20;
- keys { <KP7>, <KP8>, <KP9>, { <KPAD>, "KPAD", color= "grey20" } };
- };
- row {
- top= 39;
- keys { <KP4>, <KP5>, <KP6> };
- };
- row {
- top= 58;
- keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPAD", color= "grey20" } };
- };
- row {
- top= 77;
- keys { { <KP0>, "KP0" }, <KPDL> };
- };
- }; // End of "Keypad" section
-};
-
-xkb_geometry "t5hobo" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type5
- // keyboard. I just took a similar layout (101 key PC keyboard)
- // and adjusted the sizes.
- //
- // I modified this to look like the hobo keyboard.
-
- width= 425;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 425, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "FKEY" { { [ 15,18] }, { [0.5,0.5], [14.5, 17.5] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "BKSL" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "RTSH" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [156,18] }, { [2,1], [154,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "FKEY";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 4 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 4 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 4 }, <FK10>, <FK11>, <FK12>,
- { <MUTE>, 4 }, <VOL->, <VOL+>, <POWR>,
- { <PRSC>, 9, "NORM" }, {<SCLK>, "NORM"}, {<PAUS>, "NORM"}
- };
- };
- }; // End of "Function" section
-
- key.shape= "NORM";
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <BKSL>, "BKSL" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH", color="grey20" }, <ALGR>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9, shape="LCTL" },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <NMLK>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
-
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-};
-
-xkb_geometry "t5tuvhobo" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type5
- // keyboard. I just took a similar layout (101 key PC keyboard)
- // and adjusted the sizes.
- //
- // I modified this to look like the hobo keyboard.
-
- width= 425;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 425, 170 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "FKEY" { { [ 15,18] }, { [0.5,0.5], [14.5, 17.5] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "BKSL" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "RTRN" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 24,18] }, { [2,1], [22,17] } };
- shape "RTSH" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [156,18] }, { [2,1], [154,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "FKEY";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 4 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 4 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 4 }, <FK10>, <FK11>, <FK12>,
- { <MUTE>, 4 }, <VOL->, <VOL+>, <POWR>,
- { <PRSC>, 9, "NORM" }, {<SCLK>, "NORM"}, {<PAUS>, "NORM"}
- };
- };
- }; // End of "Function" section
-
- key.shape= "NORM";
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <BKSL>, "BKSL" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" }, <LSGT>,
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH", color="grey20" }, <ALGR>
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9, shape="LCTL" },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE" },
- <RMTA>, <COMP>, <NMLK>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
-
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-};
-
-xkb_geometry "t5jphobo" {
-
- // This is an approximate layout for a (US/ASCII) Sun Type5
- // keyboard. I just took a similar layout (101 key PC keyboard)
- // and adjusted the sizes.
-
- width= 425;
- height= 170;
-
- shape "EDGE" { cornerRadius= 2, { [ 425, 170 ] } };
- shape.cornerRadius= 1;
- shape "FKEY" { { [ 15,18] }, { [0.5,0.5], [14.5, 17.5] } };
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "KANJ" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "EXEC" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,18], [ 0,18] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,17], [ 1,17] }
- };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 42,18] }, { [2,1], [40,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [ 97,18] }, { [2,1], [95,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "LOGO" { { [ 16,16] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 14;
- row.left= 1;
- key.shape= "FKEY";
- key.gap= 1;
- section "Function" {
- top= 24;
- row {
- top= 1;
- keys { { <HELP>, "HELP" }, { <ESC>, 9 },
- { <FK01>, 4 }, <FK02>, <FK03>, <FK04>,
- { <FK05>, 4 }, <FK06>, <FK07>, <FK08>,
- { <FK09>, 4 }, <FK10>, <FK11>, <FK12>,
- { <MUTE>, 4 }, <VOL->, <VOL+>, <POWR>,
- { <PRSC>, 9, "NORM" }, {<SCLK>, "NORM"}, {<PAUS>, "NORM"}
- };
- };
- }; // End of "Function" section
-
- key.shape= "NORM";
- section "Alpha" {
- top= 61;
- row {
- top= 1;
- keys { <STOP>, <AGAI>,
- { <TLDE>, 9}, <AE01>, <AE02>, <AE03>, <AE04>,
- <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
- <AE10>, <AE11>, <AE12>,
- { <BKSP>, "BKSP", color="grey20" }
- };
- };
- row {
- top= 20;
- keys { <PROP>, <UNDO>, { <TAB>, 9, shape="TABK" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <RTRN>, "RTRN" }
- };
- };
- row {
- top= 39;
- keys { <FRNT>, <COPY>, { <CAPS>, 9, shape="CAPS" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <BKSL>
- };
- };
- row {
- top= 58;
- keys { <OPEN>, <PAST>, { <LFSH>, 9 , shape="LFSH" },
- <AB01>, <AB02>, <AB03>, <AB04>, <AB05>,
- <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, <UNDR>,
- { <RTSH>, "RTSH", color="grey20" }
- };
- };
- row {
- top= 77;
- keys { <FIND>, <CUT>, { <LCTL>, 9 },
- <LALT>, <LMTA>, { <EXEC>, "EXEC" },
- { <SPCE>, "SPCE" }, { <KANJ>, "KANJ" }, <HENK>,
- <RMTA>, <COMP>, <ALGR>
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- top= 61;
- left= 352;
- row {
- top= 1;
- keys { <INS>, <HOME>, <PGUP> };
- };
- row {
- top= 20;
- keys { <DELE>, <END>, <PGDN> };
- };
- row {
- top= 58;
- left= 20;
- keys { <UP> };
- };
- row {
- top= 77;
- keys { <LEFT>, <DOWN>, <RGHT> };
- };
- }; // End of "Editing" section
-};
-
-xkb_geometry "type5_se" {
-
- // kbd: type = 4, layout = 43
-
- description= "Sun Type5 keyboard (Sweden)";
-
- width= 510;
- height= 170;
-
- baseColor= "grey";
- labelColor= "black";
-
- shape.cornerRadius= 1;
-
- shape "EDGE" { cornerRadius= 2, { [ 510, 170 ] } };
- shape "LOGO" { cornerRadius= 2,
- { [ 0, 8], [ 8, 16], [ 16, 8], [ 8, 0] }
- };
-
- shape "NORM" { { [ 18, 18] }, { [ 2, 1], [ 16, 17] } };
- shape "BKSP" { { [ 38, 18] }, { [ 2, 1], [ 36, 17] } };
- shape "TABK" { { [ 27, 18] }, { [ 2, 1], [ 25, 17] } };
- shape "RTRN" {
- { [ 0, 0], [ 29, 0], [ 29, 37], [ 5, 37], [ 5, 18], [ 0, 18] },
- { [ 2, 1], [ 27, 1], [ 27, 36], [ 7, 36], [ 7, 17], [ 2, 17] }
- };
- shape "CAPS" { { [ 32, 18] }, { [ 2, 1], [ 30, 17 ] } };
- shape "LFSH" { { [ 24, 18] }, { [ 2, 1], [ 22, 17 ] } };
- shape "RTSH" { { [ 51, 18] }, { [ 2, 1], [ 49, 17 ] } };
- shape "LCTL" { { [ 32, 18] }, { [ 2, 1], [ 30, 17 ] } };
- shape "MODK" { { [ 28, 18] }, { [ 2, 1], [ 26, 17 ] } };
- shape "SPCE" { { [157, 18] }, { [ 2, 1], [155, 17 ] } };
- shape "KP0" { { [ 37, 18] }, { [ 2, 1], [ 35, 17 ] } };
- shape "KPAD" { { [ 18, 37] }, { [ 2, 1], [ 16, 36 ] } };
- shape "HELP" { { [ 37, 18] }, { [ 2, 1], [ 35, 17 ] } };
-
- section "Function" {
- key.color= "grey10";
- priority= 1;
- top= 24;
- left= 14;
- width= 481;
- height= 19;
- row {
- top= 1;
- left= 1;
- keys {
- { <HELP>, "HELP", 1 }, { <ESC>, "NORM", 9 },
- { <FK01>, "NORM", 19 }, { <FK02>, "NORM", 1 },
- { <FK03>, "NORM", 1 }, { <FK04>, "NORM", 1 },
- { <FK05>, "NORM", 11 }, { <FK06>, "NORM", 1 },
- { <FK07>, "NORM", 1 }, { <FK08>, "NORM", 1 },
- { <FK09>, "NORM", 11 }, { <FK10>, "NORM", 1 },
- { <FK11>, "NORM", 1 }, { <FK12>, "NORM", 1 },
- { <PRSC>, "NORM", 9 }, { <SCLK>, "NORM", 1 },
- { <PAUS>, "NORM", 1 }, { <MUTE>, "NORM", 11 },
- { <VOL->, "NORM", 1 }, { <VOL+>, "NORM", 1 },
- { <POWR>, "NORM", 1, color= "white" }
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- key.color= "white";
- priority= 2;
- top= 61;
- left= 14;
- width= 333;
- height= 95;
- row {
- top= 1;
- left= 1;
- keys {
- { <STOP>, "NORM", 1, color= "grey10" },
- { <AGAI>, "NORM", 1, color= "grey10" },
- { <TLDE>, "NORM", 9 }, { <AE01>, "NORM", 1 },
- { <AE02>, "NORM", 1 }, { <AE03>, "NORM", 1 },
- { <AE04>, "NORM", 1 }, { <AE05>, "NORM", 1 },
- { <AE06>, "NORM", 1 }, { <AE07>, "NORM", 1 },
- { <AE08>, "NORM", 1 }, { <AE09>, "NORM", 1 },
- { <AE10>, "NORM", 1 }, { <AE11>, "NORM", 1 },
- { <AE12>, "NORM", 1 },
- { <BKSP>, "BKSP", 1, color="grey10" }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <PROP>, "NORM", 1, color= "grey10" },
- { <UNDO>, "NORM", 1, color= "grey10" },
- { <TAB>, "TABK", 9, color= "grey10" },
- { <AD01>, "NORM", 1 },
- { <AD02>, "NORM", 1 }, { <AD03>, "NORM", 1 },
- { <AD04>, "NORM", 1 }, { <AD05>, "NORM", 1 },
- { <AD06>, "NORM", 1 }, { <AD07>, "NORM", 1 },
- { <AD08>, "NORM", 1 }, { <AD09>, "NORM", 1 },
- { <AD10>, "NORM", 1 }, { <AD11>, "NORM", 1 },
- { <AD12>, "NORM", 1 },
- { <RTRN>, "RTRN", 1, color= "grey10" }
- };
- };
- row {
- top= 39;
- left= 1;
- keys {
- { <FRNT>, "NORM", 1, color= "grey10" },
- { <COPY>, "NORM", 1, color= "grey10" },
- { <CAPS>, "CAPS", 9, color= "grey10" },
- { <AC01>, "NORM", 1 },
- { <AC02>, "NORM", 1 }, { <AC03>, "NORM", 1 },
- { <AC04>, "NORM", 1 }, { <AC05>, "NORM", 1 },
- { <AC06>, "NORM", 1 }, { <AC07>, "NORM", 1 },
- { <AC08>, "NORM", 1 }, { <AC09>, "NORM", 1 },
- { <AC10>, "NORM", 1 }, { <AC11>, "NORM", 1 },
- { <AC12>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 1;
- keys {
- { <OPEN>, "NORM", 1, color= "grey10" },
- { <PAST>, "NORM", 1, color= "grey10" },
- { <LFSH>, "LFSH", 9, color= "grey10" },
- { <AB00>, "NORM", 1 }, { <AB01>, "NORM", 1 },
- { <AB02>, "NORM", 1 }, { <AB03>, "NORM", 1 },
- { <AB04>, "NORM", 1 }, { <AB05>, "NORM", 1 },
- { <AB06>, "NORM", 1 }, { <AB07>, "NORM", 1 },
- { <AB08>, "NORM", 1 }, { <AB09>, "NORM", 1 },
- { <AB10>, "NORM", 1 },
- { <RTSH>, "RTSH", 1, color="grey10" }
- };
- };
- row {
- top= 77;
- left= 1;
- key.color= "grey10";
- keys {
- { <FIND>, "NORM", 1 }, { <CUT>, "NORM", 1 },
- { <LCTL>, "LCTL", 9 }, { <LALT>, "NORM", 1 },
- { <LMTA>, "NORM", 1 },
- { <SPCE>, "SPCE", 1, color= "white" },
- { <RMTA>, "NORM", 1 }, { <COMP>, "NORM", 1 },
- { <ALGR>, "NORM", 1 }
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- key.color= "grey10";
- priority= 3;
- top= 61;
- left= 352;
- width= 58;
- height= 95;
- row {
- top= 1;
- left= 1;
- keys {
- { <INS>, "NORM", 1 }, { <HOME>, "NORM", 1 },
- { <PGUP>, "NORM", 1 }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <DELE>, "NORM", 1 }, { <END>, "NORM", 1 },
- { <PGDN>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 20;
- keys {
- { <UP>, "NORM", 1 }
- };
- };
- row {
- top= 77;
- left= 1;
- keys {
- { <LEFT>, "NORM", 1 }, { <DOWN>, "NORM", 1 },
- { <RGHT>, "NORM", 1 }
- };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- key.color= "white";
- priority= 4;
- top= 61;
- left= 420;
- width= 77;
- height= 95;
- row {
- top= 1;
- left= 1;
- key.color= "grey10";
- keys {
- { <NMLK>, "NORM", 1 }, { <KPDV>, "NORM", 1 },
- { <KPMU>, "NORM", 1 }, { <KPSU>, "NORM", 1 }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <KP7>, "NORM", 1 }, { <KP8>, "NORM", 1 },
- { <KP9>, "NORM", 1 },
- { <KPAD>, "KPAD", 1, color="grey10" }
- };
- };
- row {
- top= 39;
- left= 1;
- keys {
- { <KP4>, "NORM", 1 }, { <KP5>, "NORM", 1 },
- { <KP6>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 1;
- keys {
- { <KP1>, "NORM", 1 }, { <KP2>, "NORM", 1 },
- { <KP3>, "NORM", 1 },
- { <KPEN>, "KPAD", 1, color="grey10" }
- };
- };
- row {
- top= 77;
- left= 1;
- keys {
- { <KP0>, "KP0", 1 }, { <KPDL>, "NORM", 1 }
- };
- };
- }; // End of "Keypad" section
-
- outline "Edges" {
- top= 0;
- left= 0;
- priority= 0;
- shape= "EDGE";
- };
-
- solid "Logos" {
- color= "blue";
- top= 5;
- left= 25;
- priority= 0;
- shape= "LOGO";
- };
-
- logo "SUNLogoImage" {
- top= 5;
- left= 25;
- name= "SUN";
- priority= 1;
- shape= "LOGO";
- };
-
- shape "LED" { cornerRadius= 1,
- { [ 0, 1.5], [ 1.5, 3], [ 3, 1.5], [ 1.5, 0] }
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.shape= "LED";
- indicator "Caps Lock" { left= 75; top= 103; priority= 5; };
- indicator "Compose" { left= 314; top= 142; priority= 5; };
- indicator "Scroll Lock" { left= 378; top= 29; };
- indicator "Num Lock" { left= 426; top= 66; };
-};
-
-xkb_geometry "type5c_se" {
-
- // kbd: type = 4, layout = 43
-
- description= "Sun Type5c keyboard (Sweden)";
-
- width= 510;
- height= 170;
-
- baseColor= "grey";
- labelColor= "black";
-
- shape.cornerRadius= 1;
-
- shape "EDGE" { cornerRadius= 2, { [ 510, 170 ] } };
- shape "LOGO" { cornerRadius= 2,
- { [ 0, 8], [ 8, 16], [ 16, 8], [ 8, 0] }
- };
-
- shape "NORM" { { [ 18, 18] }, { [ 2, 1], [ 16, 17] } };
- shape "BKSP" { { [ 38, 18] }, { [ 2, 1], [ 36, 17] } };
- shape "TABK" { { [ 27, 18] }, { [ 2, 1], [ 25, 17] } };
- shape "META" { { [ 27, 18] }, { [ 2, 1], [ 25, 17] } };
- shape "RTRN" {
- { [ 0, 0], [ 29, 0], [ 29, 37], [ 5, 37], [ 5, 18], [ 0, 18] },
- { [ 2, 1], [ 27, 1], [ 27, 36], [ 7, 36], [ 7, 17], [ 2, 17] }
- };
- shape "CAPS" { { [ 32, 18] }, { [ 2, 1], [ 30, 17 ] } };
- shape "LFSH" { { [ 24, 18] }, { [ 2, 1], [ 22, 17 ] } };
- shape "RTSH" { { [ 51, 18] }, { [ 2, 1], [ 49, 17 ] } };
- shape "LCTL" { { [ 32, 18] }, { [ 2, 1], [ 30, 17 ] } };
- shape "MODK" { { [ 28, 18] }, { [ 2, 1], [ 26, 17 ] } };
- shape "SPCE" { { [139, 18] }, { [ 2, 1], [137, 17 ] } };
- shape "KP0" { { [ 37, 18] }, { [ 2, 1], [ 35, 17 ] } };
- shape "KPAD" { { [ 18, 37] }, { [ 2, 1], [ 16, 36 ] } };
- shape "HELP" { { [ 37, 18] }, { [ 2, 1], [ 35, 17 ] } };
-
- section "Function" {
- key.color= "grey10";
- priority= 1;
- top= 24;
- left= 14;
- width= 481;
- height= 19;
- row {
- top= 1;
- left= 1;
- keys {
- { <HELP>, "HELP", 1 }, { <ESC>, "NORM", 9 },
- { <FK01>, "NORM", 19 }, { <FK02>, "NORM", 1 },
- { <FK03>, "NORM", 1 }, { <FK04>, "NORM", 1 },
- { <FK05>, "NORM", 11 }, { <FK06>, "NORM", 1 },
- { <FK07>, "NORM", 1 }, { <FK08>, "NORM", 1 },
- { <FK09>, "NORM", 11 }, { <FK10>, "NORM", 1 },
- { <FK11>, "NORM", 1 }, { <FK12>, "NORM", 1 },
- { <PRSC>, "NORM", 9 }, { <SCLK>, "NORM", 1 },
- { <PAUS>, "NORM", 1 }, { <MUTE>, "NORM", 11 },
- { <VOL->, "NORM", 1 }, { <VOL+>, "NORM", 1 },
- { <POWR>, "NORM", 1, color= "white" }
- };
- };
- }; // End of "Function" section
-
- section "Alpha" {
- key.color= "white";
- priority= 2;
- top= 61;
- left= 14;
- width= 333;
- height= 95;
- row {
- top= 1;
- left= 1;
- keys {
- { <STOP>, "NORM", 1, color= "grey10" },
- { <AGAI>, "NORM", 1, color= "grey10" },
- { <TLDE>, "NORM", 9 }, { <AE01>, "NORM", 1 },
- { <AE02>, "NORM", 1 }, { <AE03>, "NORM", 1 },
- { <AE04>, "NORM", 1 }, { <AE05>, "NORM", 1 },
- { <AE06>, "NORM", 1 }, { <AE07>, "NORM", 1 },
- { <AE08>, "NORM", 1 }, { <AE09>, "NORM", 1 },
- { <AE10>, "NORM", 1 }, { <AE11>, "NORM", 1 },
- { <AE12>, "NORM", 1 },
- { <BKSP>, "BKSP", 1, color="grey10" }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <PROP>, "NORM", 1, color= "grey10" },
- { <UNDO>, "NORM", 1, color= "grey10" },
- { <TAB>, "TABK", 9, color= "grey10" },
- { <AD01>, "NORM", 1 },
- { <AD02>, "NORM", 1 }, { <AD03>, "NORM", 1 },
- { <AD04>, "NORM", 1 }, { <AD05>, "NORM", 1 },
- { <AD06>, "NORM", 1 }, { <AD07>, "NORM", 1 },
- { <AD08>, "NORM", 1 }, { <AD09>, "NORM", 1 },
- { <AD10>, "NORM", 1 }, { <AD11>, "NORM", 1 },
- { <AD12>, "NORM", 1 },
- { <RTRN>, "RTRN", 1, color= "grey10" }
- };
- };
- row {
- top= 39;
- left= 1;
- keys {
- { <FRNT>, "NORM", 1, color= "grey10" },
- { <COPY>, "NORM", 1, color= "grey10" },
- { <CAPS>, "CAPS", 9, color= "grey10" },
- { <AC01>, "NORM", 1 },
- { <AC02>, "NORM", 1 }, { <AC03>, "NORM", 1 },
- { <AC04>, "NORM", 1 }, { <AC05>, "NORM", 1 },
- { <AC06>, "NORM", 1 }, { <AC07>, "NORM", 1 },
- { <AC08>, "NORM", 1 }, { <AC09>, "NORM", 1 },
- { <AC10>, "NORM", 1 }, { <AC11>, "NORM", 1 },
- { <AC12>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 1;
- keys {
- { <OPEN>, "NORM", 1, color= "grey10" },
- { <PAST>, "NORM", 1, color= "grey10" },
- { <LFSH>, "LFSH", 9, color= "grey10" },
- { <AB00>, "NORM", 1 }, { <AB01>, "NORM", 1 },
- { <AB02>, "NORM", 1 }, { <AB03>, "NORM", 1 },
- { <AB04>, "NORM", 1 }, { <AB05>, "NORM", 1 },
- { <AB06>, "NORM", 1 }, { <AB07>, "NORM", 1 },
- { <AB08>, "NORM", 1 }, { <AB09>, "NORM", 1 },
- { <AB10>, "NORM", 1 },
- { <RTSH>, "RTSH", 1, color="grey10" }
- };
- };
- row {
- top= 77;
- left= 1;
- key.color= "grey10";
- keys {
- { <FIND>, "NORM", 1 }, { <CUT>, "NORM", 1 },
- { <LCTL>, "LCTL", 9 }, { <LALT>, "NORM", 1 },
- { <LMTA>, "META", 1 },
- { <SPCE>, "SPCE", 1, color= "white" },
- { <RMTA>, "META", 1 }, { <COMP>, "NORM", 1 },
- { <ALGR>, "NORM", 1 }
- };
- };
- }; // End of "Alpha" section
-
- section "Editing" {
- key.color= "grey10";
- priority= 3;
- top= 61;
- left= 352;
- width= 58;
- height= 95;
- row {
- top= 1;
- left= 1;
- keys {
- { <INS>, "NORM", 1 }, { <HOME>, "NORM", 1 },
- { <PGUP>, "NORM", 1 }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <DELE>, "NORM", 1 }, { <END>, "NORM", 1 },
- { <PGDN>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 20;
- keys {
- { <UP>, "NORM", 1 }
- };
- };
- row {
- top= 77;
- left= 1;
- keys {
- { <LEFT>, "NORM", 1 }, { <DOWN>, "NORM", 1 },
- { <RGHT>, "NORM", 1 }
- };
- };
- }; // End of "Editing" section
-
- section "Keypad" {
- key.color= "white";
- priority= 4;
- top= 61;
- left= 420;
- width= 77;
- height= 95;
- row {
- top= 1;
- left= 1;
- key.color= "grey10";
- keys {
- { <NMLK>, "NORM", 1 }, { <KPDV>, "NORM", 1 },
- { <KPMU>, "NORM", 1 }, { <KPSU>, "NORM", 1 }
- };
- };
- row {
- top= 20;
- left= 1;
- keys {
- { <KP7>, "NORM", 1 }, { <KP8>, "NORM", 1 },
- { <KP9>, "NORM", 1 },
- { <KPAD>, "KPAD", 1, color="grey10" }
- };
- };
- row {
- top= 39;
- left= 1;
- keys {
- { <KP4>, "NORM", 1 }, { <KP5>, "NORM", 1 },
- { <KP6>, "NORM", 1 }
- };
- };
- row {
- top= 58;
- left= 1;
- keys {
- { <KP1>, "NORM", 1 }, { <KP2>, "NORM", 1 },
- { <KP3>, "NORM", 1 },
- { <KPEN>, "KPAD", 1, color="grey10" }
- };
- };
- row {
- top= 77;
- left= 1;
- keys {
- { <KP0>, "KP0", 1 }, { <KPDL>, "NORM", 1 }
- };
- };
- }; // End of "Keypad" section
-
- outline "Edges" {
- top= 0;
- left= 0;
- priority= 0;
- shape= "EDGE";
- };
-
- solid "Logos" {
- color= "blue";
- top= 5;
- left= 15;
- priority= 0;
- shape= "LOGO";
- };
-
- logo "SUNLogoImage" {
- top= 5;
- left= 15;
- name= "SUN";
- priority= 1;
- shape= "LOGO";
- };
-
- text.font= "charter";
- text.weight= "medium";
- text.slant= "i";
- text.fontSize= 40;
- text "SunLogoText" {
- top= 5;
- left= 32;
- color= "blue";
- text= "Sun";
- };
-
- shape "LED" { cornerRadius= 1,
- { [ 0, 1.5], [ 1.5, 3], [ 3, 1.5], [ 1.5, 0] }
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.shape= "LED";
- indicator "Caps Lock" { left= 75; top= 103; priority= 5; };
- indicator "Compose" { left= 314; top= 142; priority= 5; };
- indicator "Scroll Lock" { left= 378; top= 29; };
- indicator "Num Lock" { left= 426; top= 66; };
-};
-
-xkb_geometry "type4_se" {
-
- // kbd: type = 4, layout = 11
-
- description= "Sun Type4 keyboard (Sweden)";
-
-
- width= 453;
- height= 183;
-
- baseColor= "grey";
- labelColor= "black";
-
- shape "EDGE" { cornerRadius= 2, { [ 452, 185 ] } };
- shape.cornerRadius= 1;
- shape "NORM" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "BKSP" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "TABK" { { [ 27,18] }, { [2,1], [25,17] } };
- shape "DELE" { { [ 18,18] }, { [2,1], [16,17] } };
- shape "RTRN" {
- approx = { [ 0, 0], [28,37] },
- { [ 0, 0], [28, 0], [28,37],
- [ 5,37], [ 5,19], [ 0,19] },
- { [ 1, 1], [26, 1], [26,36],
- [ 7,36], [ 7,18], [ 1,18] }
- };
- shape "LCTL" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "LFSH" { { [ 22,18] }, { [2,1], [20,17] } };
- shape "RTSH" { { [ 33,18] }, { [2,1], [31,17] } };
- shape "CAPS" { { [ 32,18] }, { [2,1], [30,17] } };
- shape "MODK" { { [ 28,18] }, { [2,1], [26,17] } };
- shape "SPCE" { { [170,18] }, { [2,1], [168,17] } };
- shape "KP0" { { [ 37,18] }, { [2,1], [35,17] } };
- shape "KPAD" { { [ 18,37] }, { [2,1], [16,36] } };
- shape "HELP" { { [ 37,18] }, { [2,1], [35,17] } };
-
- outline "Edges" {
- top= 0;
- left= 0;
- shape= "EDGE";
- };
-
- section.left= 17;
- row.left= 1;
- key.shape= "NORM";
- key.gap= 1;
-
- section "Alpha" {
- top= 58;
- row {
- top= 1;
- key.color= "grey10";
- keys { <STOP>, <AGAI>, { <FK01>, 9 },
- <FK02>, <FK03>, <FK04>,
- <FK05>, <FK06>, <FK07>, <FK08>,
- <FK09>, <FK10>, <FK11>, <FK12>,
- { <AF13>, color= "white"},
- { <AF14>, color= "white"},
- <DELE>, { <PAUS>, 9 },
- <PRSC>, <SCLK>, <NMLK>
- };
- };
- row {
- top= 20;
- key.color= "white";
- keys {
- { <PROP>, color= "grey10" },
- { <UNDO>, color= "grey10" },
- { <ESC>, 9, color= "grey10" },
- <AE01>, <AE02>, <AE03>, <AE04>, <AE05>,
- <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
- <AE11>, <AE12>,
- { <BKSP>, "BKSP", color= "grey10" },
- { <KPEQ>, 9, color= "grey10" },
- { <KPDV>, color= "grey10" },
- { <KPMU>, color= "grey10" },
- { <KPSU>, color= "grey10" }
- };
- };
- row {
- top= 39;
- key.color= "white";
- keys {
- { <FRNT>, color= "grey10" },
- { <COPY>, color= "grey10" },
- { <TAB>, 9, "TABK", color= "grey10" },
- <AD01>, <AD02>, <AD03>, <AD04>, <AD05>,
- <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
- <AD11>, <AD12>,
- { <RTRN>, "RTRN", color= "grey10" },
- { <KP7>, 9, color= "grey10" },
- { <KP8>, color= "grey10" },
- { <KP9>, color= "grey10" },
- { <KPAD>, "KPAD", color= "grey10" }
- };
- };
- row {
- top= 58;
- key.color= "white";
- keys {
- { <OPEN>, color= "grey10" },
- { <PAST>, color= "grey10" },
- { <CAPS>, 9, "LCTL", color= "grey10" },
- <AC01>, <AC02>, <AC03>, <AC04>, <AC05>,
- <AC06>, <AC07>, <AC08>, <AC09>, <AC10>,
- <AC11>, <AC12>,
- { <KP4>, 33, color= "grey10" },
- { <KP5>, color= "grey10" },
- { <KP6>, color= "grey10" }
- };
- };
- row {
- top= 77;
- key.color= "white";
- keys {
- { <FIND>, color= "grey10" },
- { <CUT>, color= "grey10" },
- { <LFSH>, 9 , "LFSH", color= "grey10" },
- <AB00>, <AB01>, <AB02>, <AB03>,
- <AB04>, <AB05>, <AB06>, <AB07>,
- <AB08>, <AB09>, <AB10>,
- { <RTSH>, "RTSH", color= "grey10" },
- { <LNFD>, color= "grey10" },
- { <KP1>, 9, color= "grey10" },
- { <KP2>, color= "grey10" },
- { <KP3>, color= "grey10" },
- { <KPEN>, "KPAD", color= "grey10" }
- };
- };
- row {
- top= 96;
- key.color= "grey10";
- keys {
- { <HELP>, "HELP" }, { <LCTL>, 9 },
- <LALT>, <LMTA>,
- { <SPCE>, "SPCE", color= "white" },
- <RMTA>, <COMP>, <ALGR>,
- { <KP0>, 9, "KP0" }, <KPDL>
- };
- };
- }; // End of "Alpha" section
-
- shape "RIDGE" { cornerRadius= 1, { [ 0, 1], [ 1, 0 ],
- [330, 0], [331, 1],
- [330, 2], [ 1, 2] } };
- solid "Ridge" {
- shape= "RIDGE";
- top= 48;
- left= 18;
- };
-
- shape "LEDS" { cornerRadius= 1, { [ 75 ,21 ] } };
- shape "LED" { cornerRadius= 0, { [ 7, 4 ] } };
- outline "LedPanel" {
- shape= "LEDS";
- top= 28;
- left= 358;
- };
- indicator.onColor= "green";
- indicator.offColor= "green30";
- indicator.top= 43;
- indicator.shape= "LED";
- indicator "Caps Lock" { left= 364; };
- indicator "Compose" { left= 383; };
- indicator "Scroll Lock" { left= 402; };
- indicator "Num Lock" { left= 421; };
- text.top= 32;
- text.color= "black";
- text "CapsLockLabel" { left= 364; text="Caps\nLock"; };
- text "ComposeLabel" { left= 380; text="\nCompose"; };
- text "ScrollLockLabel" { left= 402; text="Scroll\nLock"; };
- text "NumLockLabel" { left= 421; text="Num\nLock"; };
-};
xkb_geometry "t6" {
@@ -2970,45 +715,6 @@ xkb_geometry "t6unix" {
text "NumLockLabel" { left= 224; text="Num\nLock"; };
};
-xkb_geometry "type5" {
- include "sun(t5)"
- description= "Sun Type5 keyboard";
-};
-
-xkb_geometry "type5jp" {
- include "sun(t5jp)"
- description= "Sun Type5 Japanese keyboard";
-};
-
-xkb_geometry "type5tuv" {
- include "sun(t5tuv)"
- description= "Sun Type5 keyboard";
-};
-
-xkb_geometry "type5euro" {
- include "sun(t5tuv)"
- description= "Sun Type5 keyboard";
-};
-
-xkb_geometry "type5unix" {
- include "sun(t5unix)"
- description= "Sun Type5 Unix keyboard";
-};
-
-xkb_geometry "type5hobo" {
- include "sun(t5hobo)"
- description= "Sun Type5 Hobo keyboard";
-};
-
-xkb_geometry "type5tuvhobo" {
- include "sun(t5tuvhobo)"
- description= "Sun Type5 Hobo keyboard";
-};
-
-xkb_geometry "type5jphobo" {
- include "sun(t5jphobo)"
- description= "Sun Type5 Japanese Hobo keyboard";
-};
default xkb_geometry "type6" {
include "sun(t6)"
@@ -3030,17 +736,22 @@ xkb_geometry "type6unix" {
description= "Sun Type6 Unix keyboard";
};
-xkb_geometry "x86" {
- include "pc(pc101)"
- description= "x86 Style Keyboard";
+xkb_geometry "type7" {
+ include "sun(t6)"
+ description= "Sun Type7 keyboard (US, Korea, Taiwan)";
+};
+
+xkb_geometry "type7jp" {
+ include "sun(t6jp)"
+ description= "Sun Type7 Japanese keyboard";
};
-xkb_geometry "MS_x86" {
- include "pc(pc104)"
- description= "x86 104 Key Keyboard";
+xkb_geometry "type7tuv" {
+ include "sun(t6tuv)"
+ description= "Sun Type7 TUV keyboard";
};
-xkb_geometry "x86tuv" {
- include "pc(pc102)"
- description= "x86 European Style Keyboard";
+xkb_geometry "type7unix" {
+ include "sun(t6unix)"
+ description= "Sun Type7 Unix keyboard";
};
diff --git a/xorg-server/xkeyboard-config/keycodes/sun b/xorg-server/xkeyboard-config/keycodes/sun
index ea696a8a1..5a9d21077 100644
--- a/xorg-server/xkeyboard-config/keycodes/sun
+++ b/xorg-server/xkeyboard-config/keycodes/sun
@@ -1,3 +1,4 @@
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
//Copyright 1996, 1998 The Open Group
//
@@ -23,166 +24,11 @@
//other dealings in this Software without prior written authorization
//from The Open Group.
//
-// ---------------------------------------------------------------------------
-// Copyright 2004 Sun Microsystems, Inc. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice (including the next
-// paragraph) shall be included in all copies or substantial portions of the
-// Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-//
-// ---------------------------------------------------------------------------
-//
-
-default xkb_keycodes "type4" {
-
- minimum= 8;
- maximum= 255;
-
- <ESC> = 36;
- <AE01> = 37;
- <AE02> = 38;
- <AE03> = 39;
- <AE04> = 40;
- <AE05> = 41;
- <AE06> = 42;
- <AE07> = 43;
- <AE08> = 44;
- <AE09> = 45;
- <AE10> = 46;
- <AE11> = 47;
- <AE12> = 48;
- <TLDE> = 49;
- <BKSP> = 50;
-
- <TAB> = 60;
- <AD01> = 61;
- <AD02> = 62;
- <AD03> = 63;
- <AD04> = 64;
- <AD05> = 65;
- <AD06> = 66;
- <AD07> = 67;
- <AD08> = 68;
- <AD09> = 69;
- <AD10> = 70;
- <AD11> = 71;
- <AD12> = 72;
- <DELE> = 73;
- <LCTL> = 83;
- <AC01> = 84;
- <AC02> = 85;
- <AC03> = 86;
- <AC04> = 87;
- <AC05> = 88;
- <AC06> = 89;
- <AC07> = 90;
- <AC08> = 91;
- <AC09> = 92;
- <AC10> = 93;
- <AC11> = 94;
- <BKSL> = 95;
- <RTRN> = 96;
-
- <LFSH> = 106;
- <AB01> = 107;
- <AB02> = 108;
- <AB03> = 109;
- <AB04> = 110;
- <AB05> = 111;
- <AB06> = 112;
- <AB07> = 113;
- <AB08> = 114;
- <AB09> = 115;
- <AB10> = 116;
- <RTSH> = 117;
- <LNFD> = 118;
-
- <HELP> = 125;
- <CAPS> = 126;
- <LALT> = 26;
- <LMTA> = 127;
- <SPCE> = 128;
- <RMTA> = 129;
- <COMP> = 74;
- <ALGR> = 20;
- alias <RALT> = <ALGR>;
-
- <FK01> = 12;
- <FK02> = 13;
- <FK03> = 15;
- <FK04> = 17;
- <FK05> = 19;
- <FK06> = 21;
- <FK07> = 23;
- <FK08> = 24;
- <FK09> = 25;
- <FK10> = 14;
- <FK11> = 16;
- <FK12> = 18;
-
- <STOP> = 8;
- <AGAI> = 10;
- <PROP> = 32;
- <UNDO> = 33;
- <FRNT> = 56;
- <COPY> = 58;
- <OPEN> = 79;
- <PAST> = 80;
- <FIND> = 102;
- <CUT> = 104;
-
- <PRSC> = 29;
- <SCLK> = 30;
- <PAUS> = 28;
-
- <NMLK> = 105;
- <KPEQ> = 52;
- <KPDV> = 53;
- <KPMU> = 54;
- <KPSU> = 78;
-
- <KP7> = 75;
- <KP8> = 76;
- <KP9> = 77;
- <KPAD> = 132;
-
- <KP4> = 98;
- <KP5> = 99;
- <KP6> = 100;
-
- <KP1> = 119;
- <KP2> = 120;
- <KP3> = 121;
- <KPEN> = 97;
-
- <KP0> = 101;
- <KPDL> = 57;
- indicator 4 = "Caps Lock";
- indicator 3 = "Compose";
- indicator 2 = "Scroll Lock";
- indicator 1 = "Num Lock";
-};
-
-xkb_keycodes "type5" {
+xkb_keycodes "type6" {
minimum= 8;
- maximum= 255;
+ maximum= 132;
<ESC> = 36;
<AE01> = 37;
@@ -323,628 +169,78 @@ xkb_keycodes "type5" {
indicator 1 = "Num Lock";
};
-xkb_keycodes "type4tuv" {
- include "sun(type4)"
- <LSGT> = 131;
- <BRCR> = 22;
-};
-
-xkb_keycodes "type4_ca" {
- include "sun(type4)"
- <LSGT> = 131;
-};
-xkb_keycodes "type4_jp" {
- include "sun(type4)"
- <EXEC> = 122;
- <KANJ> = 123;
- <HENK> = 124;
- <BRCR> = 22;
- alias <UNDR> = <LNFD>;
-};
-
-xkb_keycodes "type4_euro" {
- include "sun(type4)"
- <LSGT> = 131;
-};
-
-xkb_keycodes "type5tuv" {
- include "sun(type5)"
+xkb_keycodes "type6tuv" {
+ include "sun(type6)"
<LSGT> = 131;
};
-xkb_keycodes "type5_jp" {
- include "sun(type5)"
+xkb_keycodes "type6_jp" {
+ include "sun(type6)"
<EXEC> = 122;
<KANJ> = 123;
<HENK> = 124;
<UNDR> = 118;
};
-xkb_keycodes "type5_euro" {
- include "sun(type5)"
- <LSGT> = 131;
-};
-
-xkb_keycodes "type5hobo" {
-
- minimum= 8;
- maximum= 255;
-
- <ESC> = 36;
- <AE01> = 37;
- <AE02> = 38;
- <AE03> = 39;
- <AE04> = 40;
- <AE05> = 41;
- <AE06> = 42;
- <AE07> = 43;
- <AE08> = 44;
- <AE09> = 45;
- <AE10> = 46;
- <AE11> = 47;
- <AE12> = 48;
- <TLDE> = 49;
- <BKSP> = 50;
-
- <TAB> = 60;
- <AD01> = 61;
- <AD02> = 62;
- <AD03> = 63;
- <AD04> = 64;
- <AD05> = 65;
- <AD06> = 66;
- <AD07> = 67;
- <AD08> = 68;
- <AD09> = 69;
- <AD10> = 70;
- <AD11> = 71;
- <AD12> = 72;
- <DELE> = 73;
- <COMP> = 74;
- <ALGR> = 20;
- alias <RALT> = <ALGR>;
-
- <LCTL> = 83;
- <AC01> = 84;
- <AC02> = 85;
- <AC03> = 86;
- <AC04> = 87;
- <AC05> = 88;
- <AC06> = 89;
- <AC07> = 90;
- <AC08> = 91;
- <AC09> = 92;
- <AC10> = 93;
- <AC11> = 94;
- <BKSL> = 95;
- <RTRN> = 96;
-
- <LFSH> = 106;
- <AB01> = 107;
- <AB02> = 108;
- <AB03> = 109;
- <AB04> = 110;
- <AB05> = 111;
- <AB06> = 112;
- <AB07> = 113;
- <AB08> = 114;
- <AB09> = 115;
- <AB10> = 116;
- <RTSH> = 117;
-
- <LALT> = 26;
- <CAPS> = 126;
- <LMTA> = 127;
- <SPCE> = 128;
- <RMTA> = 129;
-
- <FK01> = 12;
- <FK02> = 13;
- <FK03> = 15;
- <FK04> = 17;
- <FK05> = 19;
- <FK06> = 21;
- <FK07> = 23;
- <FK08> = 24;
- <FK09> = 25;
- <FK10> = 14;
- <FK11> = 16;
- <FK12> = 18;
- <STOP> = 8;
- <AGAI> = 10;
- <PROP> = 32;
- <UNDO> = 33;
- <FRNT> = 56;
- <COPY> = 58;
- <OPEN> = 79;
- <PAST> = 80;
- <FIND> = 102;
- <CUT> = 104;
-
- <PRSC> = 29;
- <SCLK> = 30;
- <PAUS> = 28;
-
- <NMLK> = 105;
-// <KPDV> = 53;
-// <KPMU> = 54;
-// <KPSU> = 78;
-
-// <KP7> = 75;
-// <KP8> = 76;
-// <KP9> = 77;
-// <KPAD> = 132;
-
-// <KP4> = 98;
-// <KP5> = 99;
-// <KP6> = 100;
-
-// <KP1> = 119;
-// <KP2> = 120;
-// <KP3> = 121;
-// <KPEN> = 97;
-
-// <KP0> = 101;
-// <KPDL> = 57;
-
- <UP> = 27;
- <LEFT> = 31;
- <DOWN> = 34;
- <RGHT> = 35;
-
- <INS> = 51;
- <HOME> = 59;
- <END> = 81;
- <PGUP> = 103;
- <PGDN> = 130;
- <HELP> = 125;
-
- <MUTE> = 52;
- <VOL-> = 9;
- <VOL+> = 11;
- <POWR> = 55;
- indicator 4 = "Caps Lock";
- indicator 3 = "Compose";
- indicator 2 = "Scroll Lock";
- indicator 1 = "Num Lock";
-};
-
-xkb_keycodes "type5tuvhobo" {
- include "sun(type5hobo)"
+xkb_keycodes "type6_euro" {
+ include "sun(type6)"
<LSGT> = 131;
-
-};
-
-xkb_keycodes "type5_jphobo" {
- include "sun(type5hobo)"
- <EXEC> = 122;
- <KANJ> = 123;
- <HENK> = 124;
- <UNDR> = 118;
-};
-
-xkb_keycodes "type6" {
- include "sun(type5)"
-};
-
-xkb_keycodes "type6tuv" {
- include "sun(type5tuv)"
};
xkb_keycodes "type6unix" {
- include "sun(type5)"
-};
-
-xkb_keycodes "type6_jp" {
- include "sun(type5_jp)"
-};
-
-xkb_keycodes "type6_euro" {
- include "sun(type5_euro)"
+ include "sun(type6)"
};
// Even though this is labeled as _usb, I verified these keycodes as accurate
// on my type5 serial and type6 serial keyboards as well on linux-2.6 boxes.
-// I'm not sure where the "type5" keycodes above are coming from...
-xkb_keycodes "type6_usb" {
+// I'm not sure where the "type6" keycodes above are coming from...
+default xkb_keycodes "type6_usb" {
include "xfree86"
- <STOP> = 232;
- <AGAI> = 133;
- <PROP> = 134;
- <UNDO> = 135;
- <FRNT> = 140;
- <COPY> = 248;
- <OPEN> = 191;
- <PAST> = 192;
- <FIND> = 122;
- <CUT> = 188;
+// <STOP> = 232;
+// <AGAI> = 133;
+// <PROP> = 134;
+// <UNDO> = 135;
+// <FRNT> = 140;
+// <COPY> = 248;
+// <OPEN> = 191;
+// <PAST> = 192;
+// <FIND> = 122;
+// <CUT> = 188;
- <HELP> = 245;
+ // <HELP> = 245;
// The blank has keycode 239 on my type6 serial kb, but 134 on
// my type6 usb keyboard (same as <PROP>)
- <BLNK> = 239;
+// <BLNK> = 239;
// AltGr + PrScr actually sends a different keycode
- <SYRQ> = 92;
+// <SYRQ> = 92;
+
+// <MUTE> = 160;
+// <VOL-> = 174;
+// <VOL+> = 176;
+// <POWR> = 222;
- <MUTE> = 160;
- <VOL-> = 174;
- <VOL+> = 176;
- <POWR> = 222;
+ <I150> = 155;
+ <I160> = 160;
+ <I235> = 235;
indicator 4 = "Compose";
};
xkb_keycodes "type6tuv_usb" {
include "sun(type6_usb)"
- <LSGT> = 94;
+// <LSGT> = 94;
// <BKSL> = 51;
};
xkb_keycodes "type6_jp_usb" {
include "sun(type6_usb)"
alias <UNDR> = <KPDC>; // 123
- alias <EXEC> = <I0B>; // 139
- alias <KANJ> = <I0A>; // 138
- alias <HENK> = <XFER>; // 129
+ alias <EXEC> = <NFER>; // 131
+ alias <KANJ> = <XFER>; // 129
+ alias <HENK> = <HKTG>; // 208
indicator 5 = "Kana";
};
-
-xkb_keycodes "type5_se" {
-
- minimum= 8;
- maximum= 255;
-
- // Row G
- <HELP> = 125;
- //
- <ESC> = 36;
- //
- <FK01> = 12;
- <FK02> = 13;
- <FK03> = 15;
- <FK04> = 17;
- //
- <FK05> = 19;
- <FK06> = 21;
- <FK07> = 23;
- <FK08> = 24;
- //
- <FK09> = 25;
- <FK10> = 14;
- <FK11> = 16;
- <FK12> = 18;
- //
- <PRSC> = 29;
- <SCLK> = 30;
- <PAUS> = 28;
- //
- <MUTE> = 52;
- <VOL-> = 9;
- <VOL+> = 11;
- <POWR> = 55;
- // End Row G
-
- // Row F
- //
- // End Row F
-
- // Row E
- <STOP> = 8;
- <AGAI> = 10;
- //
- <AE00> = 49;
- alias <TLDE> = <AE00>;
- <AE01> = 37;
- <AE02> = 38;
- <AE03> = 39;
- <AE04> = 40;
- <AE05> = 41;
- <AE06> = 42;
- <AE07> = 43;
- <AE08> = 44;
- <AE09> = 45;
- <AE10> = 46;
- <AE11> = 47;
- <AE12> = 48;
- <BKSP> = 50;
- //
- <INS> = 51;
- <HOME> = 59;
- <PGUP> = 103;
- //
- <NMLK> = 105;
- <KPDV> = 53;
- <KPMU> = 54;
- <KPSU> = 78;
- //End Row E
-
- // Row D
- <PROP> = 32;
- <UNDO> = 33;
- //
- <AD00> = 60;
- alias <TAB> = <AD00>;
- <AD01> = 61;
- <AD02> = 62;
- <AD03> = 63;
- <AD04> = 64;
- <AD05> = 65;
- <AD06> = 66;
- <AD07> = 67;
- <AD08> = 68;
- <AD09> = 69;
- <AD10> = 70;
- <AD11> = 71;
- <AD12> = 72;
- //
- <DELE> = 73;
- <END> = 81;
- <PGDN> = 130;
- //
- <KP7> = 75;
- <KP8> = 76;
- <KP9> = 77;
- <KPAD> = 132;
- // End Row D
-
- // Row C
- <FRNT> = 56;
- <COPY> = 58;
- //
- <AC00> = 126;
- alias <CAPS> = <AC00>;
- <AC01> = 84;
- <AC02> = 85;
- <AC03> = 86;
- <AC04> = 87;
- <AC05> = 88;
- <AC06> = 89;
- <AC07> = 90;
- <AC08> = 91;
- <AC09> = 92;
- <AC10> = 93;
- <AC11> = 94;
- <AC12> = 95;
- alias <BKSL> = <AC12>;
- <RTRN> = 96;
- //
- <KP4> = 98;
- <KP5> = 99;
- <KP6> = 100;
- // End Row C
-
- // Row B
- <OPEN> = 79;
- <PAST> = 80;
- //
- <LFSH> = 106;
- <AB00> = 131;
- alias <LSGT> = <AB00>;
- <AB01> = 107;
- <AB02> = 108;
- <AB03> = 109;
- <AB04> = 110;
- <AB05> = 111;
- <AB06> = 112;
- <AB07> = 113;
- <AB08> = 114;
- <AB09> = 115;
- <AB10> = 116;
- <RTSH> = 117;
- //
- <UP> = 27;
- //
- <KP1> = 119;
- <KP2> = 120;
- <KP3> = 121;
- <KPEN> = 97;
- // End Row B
-
- // Row A
- <FIND> = 102;
- <CUT> = 104;
- //
- <LCTL> = 83;
- <LALT> = 26;
- <LMTA> = 127;
- <SPCE> = 128;
- <RMTA> = 129;
- <COMP> = 74;
- <ALGR> = 20;
- alias <RALT> = <ALGR>;
- //
- <LEFT> = 31;
- <DOWN> = 34;
- <RGHT> = 35;
- //
- <KP0> = 101;
- <KPDL> = 57;
- // End Row A
-
- indicator 4 = "Caps Lock";
- indicator 3 = "Compose";
- indicator 2 = "Scroll Lock";
- indicator 1 = "Num Lock";
-};
-
-xkb_keycodes "type5c_se" {
- include "sun(type5_se)"
-};
-
-xkb_keycodes "type4__se" {
-
- minimum= 8;
- maximum= 255;
-
- // Row F
- <STOP> = 8;
- <AGAI> = 10;
- //
- <FK01> = 12;
- <FK02> = 13;
- <FK03> = 15;
- <FK04> = 17;
- <FK05> = 19;
- <FK06> = 21;
- <FK07> = 23;
- <FK08> = 24;
- <FK09> = 25;
- <FK10> = 14;
- <FK11> = 16;
- <FK12> = 18;
- <AF13> = 95;
- alias <TLDE> = <AF13>;
- <AF14> = 22;
- <DELE> = 73;
- //
- <PAUS> = 28;
- <PRSC> = 29;
- <SCLK> = 30;
- <NMLK> = 105;
- // End Row F
-
- // Row E
- <PROP> = 32;
- <UNDO> = 33;
- //
- <AE00> = 36;
- alias <ESC> = <AE00>;
- <AE01> = 37;
- <AE02> = 38;
- <AE03> = 39;
- <AE04> = 40;
- <AE05> = 41;
- <AE06> = 42;
- <AE07> = 43;
- <AE08> = 44;
- <AE09> = 45;
- <AE10> = 46;
- <AE11> = 47;
- <AE12> = 48;
- <BKSP> = 50;
- //
- <KPEQ> = 52;
- <KPDV> = 53;
- <KPMU> = 54;
- <KPSU> = 78;
- // End Row E
-
- // Row D
- <FRNT> = 56;
- <COPY> = 58;
- //
- <AD00> = 60;
- alias <TAB> = <AD00>;
- <AD01> = 61;
- <AD02> = 62;
- <AD03> = 63;
- <AD04> = 64;
- <AD05> = 65;
- <AD06> = 66;
- <AD07> = 67;
- <AD08> = 68;
- <AD09> = 69;
- <AD10> = 70;
- <AD11> = 71;
- <AD12> = 72;
- //
- <KP7> = 75;
- <KP8> = 76;
- <KP9> = 77;
- <KPAD> = 132;
- // End Row D
-
- // Row C
- <OPEN> = 79;
- <PAST> = 80;
- //
- <AC00> = 83;
- // alias <CAPS> = <AC00>;
- <AC01> = 84;
- <AC02> = 85;
- <AC03> = 86;
- <AC04> = 87;
- <AC05> = 88;
- <AC06> = 89;
- <AC07> = 90;
- <AC08> = 91;
- <AC09> = 92;
- <AC10> = 93;
- <AC11> = 94;
- <AC12> = 49;
- alias <BKSL> = <AC12>;
- <RTRN> = 96;
- //
- <KP4> = 98;
- <KP5> = 99;
- <KP6> = 100;
- // End Row C
-
- // Row B
- <FIND> = 102;
- <CUT> = 104;
- //
- <LFSH> = 106;
- <AB00> = 131;
- alias <LSGT> = <AB00>;
- <AB01> = 107;
- <AB02> = 108;
- <AB03> = 109;
- <AB04> = 110;
- <AB05> = 111;
- <AB06> = 112;
- <AB07> = 113;
- <AB08> = 114;
- <AB09> = 115;
- <AB10> = 116;
- <RTSH> = 117;
- <LNFD> = 118;
- //
- <KP1> = 119;
- <KP2> = 120;
- <KP3> = 121;
- <KPEN> = 97;
- // End Row B
-
- // Row A
- <HELP> = 125;
- //
- <AA00> = 126;
- // alias <LCTL> = <AA00>;
- <LALT> = 26;
- <LMTA> = 127;
- <SPCE> = 128;
- <RMTA> = 129;
- <COMP> = 74;
- <ALGR> = 20;
- alias <RALT> = <ALGR>;
- //
- <KP0> = 101;
- <KPDL> = 57;
- // End Row A
-
- indicator 4 = "Caps Lock";
- indicator 3 = "Compose";
- indicator 2 = "Scroll Lock";
- indicator 1 = "Num Lock";
-};
-
-xkb_keycodes "type4_se" {
-
- include "sun(type4__se)"
-
- alias <LCTL> = <AA00>;
- alias <CAPS> = <AC00>;
-};
-
-xkb_keycodes "type4_se_swapctl" {
-
- include "sun(type4__se)"
-
- alias <LCTL> = <AC00>;
- alias <CAPS> = <AA00>;
-};
diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
index 05732af2a..1614eec96 100644
--- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
@@ -77,6 +77,12 @@
<_description>Secwepemctsin</_description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Multilingual (Canada, Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -108,6 +114,12 @@
</languageList>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>German (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -141,6 +153,12 @@
<_description>Lithuanian (US Dvorak with Lithuanian letters)</_description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Lithuanian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -201,6 +219,12 @@
<_description>Latvian (US Colemak, apostrophe variant)</_description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Latvian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -247,6 +271,12 @@
<iso639Id>ger</iso639Id> </languageList>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>English (US, Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -269,7 +299,13 @@
<_description>Polish (Colemak)</_description>
</configItem>
</variant>
- </variantList>
+ <variant>
+ <configItem>
+ <name>type6</name>
+ <_description>Polish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
</layout>
<layout>
<configItem>
@@ -295,6 +331,12 @@
<_description>Romanian (ergonomic Touchtype)</_description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>type6</name>
+ <_description>Romanian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -337,6 +379,12 @@
<iso639Id>bel</iso639Id></languageList>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>type6</name>
+ <_description>Russian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
@@ -374,6 +422,354 @@
</variant>
</variantList>
</layout>
+ <layout>
+ <configItem>
+ <name>ara</name>
+ <_shortDescription>ar</_shortDescription>
+ <_description>Arabic</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Arabic (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>be</name>
+ <_shortDescription>be</_shortDescription>
+ <_description>Belgian</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Belgian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>br</name>
+ <_shortDescription>pt</_shortDescription>
+ <_description>Portuguese (Brazil)</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Portuguese (Brazil,Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>cz</name>
+ <_shortDescription>cs</_shortDescription>
+ <_description>Czech</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Czech (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>dk</name>
+ <_shortDescription>da</_shortDescription>
+ <_description>Danish</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Danish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>nl</name>
+ <_shortDescription>nl</_shortDescription>
+ <_description>Dutch</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Dutch (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ee</name>
+ <_shortDescription>et</_shortDescription>
+ <_description>Estonian</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Estonian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fi</name>
+ <_shortDescription>fi</_shortDescription>
+ <_description>Finnish</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Finnish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>fr</name>
+ <_shortDescription>fr</_shortDescription>
+ <_description>French</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>French (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gr</name>
+ <_shortDescription>gr</_shortDescription>
+ <_description>Greek</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Greek (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>it</name>
+ <_shortDescription>it</_shortDescription>
+ <_description>Italian</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Italian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>jp</name>
+ <_shortDescription>ja</_shortDescription>
+ <_description>Japanese</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Japanese (Sun Type 6)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7</name>
+ <_description>Japanese (Sun Type 7 - pc compatible)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type7_suncompat</name>
+ <_description>Japanese (Sun Type 7 - sun compatible)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>no</name>
+ <_shortDescription>no</_shortDescription>
+ <_description>Norwegian</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Norwegian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>pt</name>
+ <_shortDescription>pt</_shortDescription>
+ <_description>Portuguese</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Portuguese (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>sk</name>
+ <_shortDescription>sk</_shortDescription>
+ <_description>Slovak</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Slovak (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>es</name>
+ <_shortDescription>es</_shortDescription>
+ <_description>Spanish</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Spanish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>se</name>
+ <_shortDescription>sv</_shortDescription>
+ <_description>Swedish</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Swedish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ch</name>
+ <_shortDescription>de</_shortDescription>
+ <_description>>German (Switzerland)</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6_de</name>
+ <_description>German (Switzerland, Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>sun_type6_fr</name>
+ <_description>French (Switzerland, Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>tr</name>
+ <_shortDescription>tr</_shortDescription>
+ <_description>Turkish</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Turkish (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ua</name>
+ <_shortDescription>uk</_shortDescription>
+ <_description>Ukrainian</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Ukrainian (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>gb</name>
+ <_shortDescription>en</_shortDescription>
+ <_description>English (UK)</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>English (UK, Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>kr</name>
+ <_shortDescription>ko</_shortDescription>
+ <_description>Korean</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>sun_type6</name>
+ <_description>Korean (Sun Type 6/7)</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
</layoutList>
<optionList/>
</xkbConfigRegistry>
diff --git a/xorg-server/xkeyboard-config/rules/base.lists.part b/xorg-server/xkeyboard-config/rules/base.lists.part
index c7983df87..97b3b907f 100644
--- a/xorg-server/xkeyboard-config/rules/base.lists.part
+++ b/xorg-server/xkeyboard-config/rules/base.lists.part
@@ -99,9 +99,21 @@
! $thinkpads = thinkpad thinkpad60 thinkpadz60
-! $sun_t6_custom = ara be br ca ch cz de dk \
- ee es fi fr gb gr it kr \
- lt lv nl no pl pt ro ru \
- se sk tr tw ua
+! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \
+ sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \
+ sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb
+
+! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb
+
+// Sun Type_6_7 keyboards with custom layouts
+! $sun_custom = ara be br ca ch cz de dk \
+ ee es fi fr gb gr it jp \
+ kr lt lv nl no pl pt ro \
+ ru se sk tr tw ua us
+
+! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \
+ sun_type7 sun_type7_suncompat suncompat
+
+! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat
! $htcdreamlayouts = us it de
diff --git a/xorg-server/xkeyboard-config/rules/base.m_g.part b/xorg-server/xkeyboard-config/rules/base.m_g.part
index 753f2ed75..eb0512d58 100644
--- a/xorg-server/xkeyboard-config/rules/base.m_g.part
+++ b/xorg-server/xkeyboard-config/rules/base.m_g.part
@@ -24,4 +24,13 @@
hhk = hhk(basic)
kinesis = kinesis(model100)
$nokiamodels = nokia(%m)
+ sun_type6_jp = sun(type6jp)
+ sun_type6_usb = sun(type6)
+ sun_type6_euro_usb = sun(type6tuv)
+ sun_type6_jp_usb = sun(type6jp)
+ sun_type6_unix_usb = sun(type6unix)
+ sun_type7_jp_usb = sun(type6jp)
+ sun_type7_usb = sun(type7)
+ sun_type7_euro_usb = sun(type7tuv)
+ sun_type7_unix_usb = sun(type7unix)
* = pc(pc104)
diff --git a/xorg-server/xkeyboard-config/rules/base.m_k.part b/xorg-server/xkeyboard-config/rules/base.m_k.part
index 2c621208f..ebccd3ea5 100644
--- a/xorg-server/xkeyboard-config/rules/base.m_k.part
+++ b/xorg-server/xkeyboard-config/rules/base.m_k.part
@@ -1,10 +1,8 @@
amiga = amiga(de)
ataritt = ataritt(de)
empty = empty
- sun4 = sun(type4_euro)
- sun5 = sun(type5_euro)
- sun6 = sun(type6_usb)
- sun6euro = sun(type6tuv_usb)
+ $sun_jp = sun(type6_jp_usb)
+ $sun = sun(type6_usb)
pc98 = xfree98(pc98)
$applealu = macintosh(alukbd)
macintosh_hhk = macintosh(hhk)
diff --git a/xorg-server/xkeyboard-config/rules/base.m_s.part b/xorg-server/xkeyboard-config/rules/base.m_s.part
index 4bbbcce31..e5d32a2a9 100644
--- a/xorg-server/xkeyboard-config/rules/base.m_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.m_s.part
@@ -49,3 +49,5 @@
$maclaptop = +inet(apple)+level3(enter_switch)
$applealu = +inet(apple)
$macs = +inet(apple)
+ sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp)
+ $sun = +sun_vndr/solaris(defaults)
diff --git a/xorg-server/xkeyboard-config/rules/base.ml1_s.part b/xorg-server/xkeyboard-config/rules/base.ml1_s.part
index 20b4276ed..1a990b0ae 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml1_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml1_s.part
@@ -1,7 +1,6 @@
ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1])
amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
- sun4 * = latin+sun_vndr/us(type4)+%l[1]%(v[1])
- sun5 * = latin+sun_vndr/us(type5)+%l[1]%(v[1])
+ $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1])
macintosh_old us = macintosh_vndr/us(oldmac)
macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1])
diff --git a/xorg-server/xkeyboard-config/rules/base.ml2_s.part b/xorg-server/xkeyboard-config/rules/base.ml2_s.part
index 27f997529..e80d7cf86 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml2_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml2_s.part
@@ -1,3 +1,4 @@
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2
nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2
+ $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2
* * = +%l[2]%(v[2]):2
diff --git a/xorg-server/xkeyboard-config/rules/base.ml3_s.part b/xorg-server/xkeyboard-config/rules/base.ml3_s.part
index 607752509..efe7cf17b 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml3_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml3_s.part
@@ -1,3 +1,4 @@
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3
nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3
+ $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3
* * = +%l[3]%(v[3]):3
diff --git a/xorg-server/xkeyboard-config/rules/base.ml4_s.part b/xorg-server/xkeyboard-config/rules/base.ml4_s.part
index 8d92f393c..00ba445da 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml4_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml4_s.part
@@ -1,3 +1,4 @@
nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4
nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4
+ $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4
* * = +%l[4]%(v[4]):4
diff --git a/xorg-server/xkeyboard-config/rules/base.ml_s.part b/xorg-server/xkeyboard-config/rules/base.ml_s.part
index 7e0148672..552693dbf 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml_s.part
@@ -5,18 +5,7 @@
classmate us = pc+%l(classmate)
empty * = empty(basic)
* empty = empty(basic)
- sun4 $nonlatin = latin+sun_vndr/us(type4)+%l%(v):2
- sun4 * = latin+sun_vndr/us(type4)+%l%(v)
- sun5 $nonlatin = latin+sun_vndr/us(type5)+%l%(v):2
- sun5 * = latin+sun_vndr/us(type5)+%l%(v)
- sun6 us = pc+sun_vndr/us(type6)
- sun6 en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
- sun6 $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
- sun6 * = pc+sun_vndr/us(type6)+%l%(v)
- sun6euro us = pc+sun_vndr/us(type6)
- sun6euro en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
- sun6euro $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
- sun6euro * = pc+sun_vndr/us(type6)+%l%(v)
+ $sun $sun_custom = pc+sun_vndr/%l%(v)
pc98 nec_vndr/jp = nec_vndr/jp(pc98)
macintosh_old us = macintosh_vndr/us(oldmac)
macintosh_old en_US = macintosh_vndr/us(oldmac)
diff --git a/xorg-server/xkeyboard-config/rules/base.mlv_s.part b/xorg-server/xkeyboard-config/rules/base.mlv_s.part
index 1eecc55c0..1ae117173 100644
--- a/xorg-server/xkeyboard-config/rules/base.mlv_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.mlv_s.part
@@ -2,3 +2,4 @@
classmate us alt-intl = pc+us(classmate-alt-intl)
classmate us altgr-intl = pc+us(classmate-altgr-intl)
nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty)
+ * $sun_custom $sun_var = pc+sun_vndr/%l%(v)
diff --git a/xorg-server/xkeyboard-config/rules/base.o_s.part b/xorg-server/xkeyboard-config/rules/base.o_s.part
index 7d880f438..253effded 100644
--- a/xorg-server/xkeyboard-config/rules/base.o_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.o_s.part
@@ -134,6 +134,7 @@
shift:both_shiftlock = +shift(both_shiftlock)
shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock)
shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock)
+ solaris:sun_compat = +sun_vndr/solaris(sun_compat)
lv3:caps_switch = +level3(caps_switch)
lv3:bksl_switch = +level3(bksl_switch)
lv3:lsgt_switch = +level3(lsgt_switch)
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index d21891db2..fd9cc274f 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -1199,8 +1199,64 @@
</model>
<model>
<configItem>
- <name>sun6</name>
- <_description>Sun Type 5/6</_description>
+ <name>sun_type7_usb</name>
+ <_description>Sun Type 7 USB</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_euro_usb</name>
+ <_description>Sun Type 7 USB (European layout)</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_unix_usb</name>
+ <_description>Sun Type 7 USB (Unix layout)</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type7_jp_usb</name>
+ <_description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_usb</name>
+ <_description>Sun Type 6/7 USB</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_euro_usb</name>
+ <_description>Sun Type 6/7 USB (European layout)</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_unix_usb</name>
+ <_description>Sun Type 6 USB (Unix layout)</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp_usb</name>
+ <_description>Sun Type 6 USB (Japanese layout)</_description>
+ <vendor>Sun Microsystems</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
+ <name>sun_type6_jp</name>
+ <_description>Sun Type 6 (Japanese layout)</_description>
<vendor>Sun Microsystems</vendor>
</configItem>
</model>
@@ -6598,6 +6654,18 @@
</group>
<group allowMultipleSelection="true">
<configItem>
+ <name>solaris</name>
+ <_description>Maintain key compatibility with old Solaris keycodes</_description>
+ </configItem>
+ <option>
+ <configItem>
+ <name>solaris:sun_compat</name>
+ <_description>Sun Key compatibility</_description>
+ </configItem>
+ </option>
+ </group>
+ <group allowMultipleSelection="true">
+ <configItem>
<name>terminate</name>
<_description>Key sequence to kill the X server</_description>
</configItem>
diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part
index 64ff0f2f5..9d274dff1 100644
--- a/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part
+++ b/xorg-server/xkeyboard-config/rules/compat/base.l1v1_c.part
@@ -1 +1,2 @@
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ jp $sun_compat = complete+japan(kana_lock)
diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part
index fea61be76..b7d6e309a 100644
--- a/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part
+++ b/xorg-server/xkeyboard-config/rules/compat/base.l2v2_c.part
@@ -1 +1,2 @@
de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2
+ jp $sun_compat = +complete+japan(kana_lock):2
diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part
index 5a1fb2f8a..360b4c425 100644
--- a/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part
+++ b/xorg-server/xkeyboard-config/rules/compat/base.l3v3_c.part
@@ -1 +1,2 @@
de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3
+ jp $sun_compat = +complete+japan(kana_lock):3
diff --git a/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part b/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part
index ac8a91102..6633312c2 100644
--- a/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part
+++ b/xorg-server/xkeyboard-config/rules/compat/base.l4v4_c.part
@@ -1 +1,2 @@
de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4
+ jp $sun_compat = +complete+japan(kana_lock):4
diff --git a/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part b/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part
index 64ff0f2f5..927ff06b2 100644
--- a/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part
+++ b/xorg-server/xkeyboard-config/rules/compat/base.lv_c.part
@@ -1 +1,2 @@
de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock)
+ jp $sun_compat = complete+japan(kana_lock)
diff --git a/xorg-server/xkeyboard-config/symbols/ara b/xorg-server/xkeyboard-config/symbols/ara
index 146e9b325..c0d57ef42 100644
--- a/xorg-server/xkeyboard-config/symbols/ara
+++ b/xorg-server/xkeyboard-config/symbols/ara
@@ -272,3 +272,10 @@ xkb_symbols "olpc" {
include "group(olpc)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ara(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/be b/xorg-server/xkeyboard-config/symbols/be
index e39fccf9c..cf8e06871 100644
--- a/xorg-server/xkeyboard-config/symbols/be
+++ b/xorg-server/xkeyboard-config/symbols/be
@@ -230,3 +230,10 @@ xkb_symbols "wang" {
key <TLDE> { [ twosuperior, threesuperior, notsign, asciitilde ] };
key <LSGT> { [ less, greater, backslash, brokenbar ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/be(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/br b/xorg-server/xkeyboard-config/symbols/br
index 8ead57c26..dee718860 100644
--- a/xorg-server/xkeyboard-config/symbols/br
+++ b/xorg-server/xkeyboard-config/symbols/br
@@ -315,3 +315,10 @@ xkb_symbols "nativo-epo" {
key <AB06> { [ gcircumflex, Gcircumflex, q, Q ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/br(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ca b/xorg-server/xkeyboard-config/symbols/ca
index ab9cef19d..e93995302 100644
--- a/xorg-server/xkeyboard-config/symbols/ca
+++ b/xorg-server/xkeyboard-config/symbols/ca
@@ -528,3 +528,8 @@ xkb_symbols "shs" {
include "compose(rctrl)"
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ca(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ch b/xorg-server/xkeyboard-config/symbols/ch
index d890c33a6..989a2df27 100644
--- a/xorg-server/xkeyboard-config/symbols/ch
+++ b/xorg-server/xkeyboard-config/symbols/ch
@@ -211,3 +211,15 @@ xkb_symbols "fr_mac" {
[ agrave, adiaeresis, braceleft ]
};
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6_de" {
+ include "sun_vndr/ch(sun_type6_de)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6_fr" {
+ include "sun_vndr/ch(sun_type6_fr)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/cz b/xorg-server/xkeyboard-config/symbols/cz
index db3dd4885..336050ceb 100644
--- a/xorg-server/xkeyboard-config/symbols/cz
+++ b/xorg-server/xkeyboard-config/symbols/cz
@@ -175,3 +175,10 @@ xkb_symbols "dvorak-ucw" {
include "level3(ralt_switch)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/cz(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/de b/xorg-server/xkeyboard-config/symbols/de
index 6ac1e6711..6872f46ba 100644
--- a/xorg-server/xkeyboard-config/symbols/de
+++ b/xorg-server/xkeyboard-config/symbols/de
@@ -650,3 +650,8 @@ xkb_symbols "hu" {
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/de(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/dk b/xorg-server/xkeyboard-config/symbols/dk
index 1deea28aa..4e656b209 100644
--- a/xorg-server/xkeyboard-config/symbols/dk
+++ b/xorg-server/xkeyboard-config/symbols/dk
@@ -71,3 +71,10 @@ xkb_symbols "dvorak" {
name[Group1]= "Danish (Dvorak)";
key <AD12> { [ asciitilde, asciicircum, dead_diaeresis, dead_tilde ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/dk(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ee b/xorg-server/xkeyboard-config/symbols/ee
index e171b78ad..67c484447 100644
--- a/xorg-server/xkeyboard-config/symbols/ee
+++ b/xorg-server/xkeyboard-config/symbols/ee
@@ -99,3 +99,10 @@ xkb_symbols "us" {
include "level3(ralt_switch)"
include "eurosign(e)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ee(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/es b/xorg-server/xkeyboard-config/symbols/es
index fec506ab7..cf66f9b35 100644
--- a/xorg-server/xkeyboard-config/symbols/es
+++ b/xorg-server/xkeyboard-config/symbols/es
@@ -215,3 +215,10 @@ xkb_symbols "olpc2" {
include "level3(ralt_switch)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/es(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/fi b/xorg-server/xkeyboard-config/symbols/fi
index fc5a0a27c..b8b2183b4 100644
--- a/xorg-server/xkeyboard-config/symbols/fi
+++ b/xorg-server/xkeyboard-config/symbols/fi
@@ -196,3 +196,10 @@ xkb_symbols "mac" {
name[Group1]="Finnish (Macintosh)";
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/fi(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/fr b/xorg-server/xkeyboard-config/symbols/fr
index 45ef6a475..0d1d13de8 100644
--- a/xorg-server/xkeyboard-config/symbols/fr
+++ b/xorg-server/xkeyboard-config/symbols/fr
@@ -1024,3 +1024,10 @@ xkb_symbols "geo" {
key <AB10> { [ 0x010010ed, noSymbol ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/fr(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/gb b/xorg-server/xkeyboard-config/symbols/gb
index 58e966fc7..c7de8c33e 100644
--- a/xorg-server/xkeyboard-config/symbols/gb
+++ b/xorg-server/xkeyboard-config/symbols/gb
@@ -199,3 +199,10 @@ xkb_symbols "mac_intl" {
include "level3(ralt_switch)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/gb(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/gr b/xorg-server/xkeyboard-config/symbols/gr
index d7d126009..ba04d9f8a 100644
--- a/xorg-server/xkeyboard-config/symbols/gr
+++ b/xorg-server/xkeyboard-config/symbols/gr
@@ -194,3 +194,10 @@ xkb_symbols "nodeadkeys" {
key <AC10> { [ semicolon, colon ] }; // ; :
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/gr(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/in b/xorg-server/xkeyboard-config/symbols/in
index 68f1b8aba..b995fbb98 100644
--- a/xorg-server/xkeyboard-config/symbols/in
+++ b/xorg-server/xkeyboard-config/symbols/in
@@ -38,7 +38,7 @@ xkb_symbols "deva" {
// INSCRIPT in place of the symbols that are here for now. But this
// requires XKB to map 1 key into two to three other key presses.
key <AE03> { [ U0969, numbersign, 3, numbersign ] };
- key <AE04> { [ U096a, dollar, 4, dollar ] };
+ key <AE04> { [ U096a, dollar, 4 ] };
key <AE05> { [ U096b, percent, 5, percent ] };
key <AE06> { [ U096c, asciicircum, 6, asciicircum ] };
key <AE07> { [ U096d, ampersand, 7, ampersand ] };
@@ -89,6 +89,8 @@ xkb_symbols "deva" {
// space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ):
include "nbsp(zwnj3zwj4)"
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
//Name : Bolnagri (Combined)
@@ -110,7 +112,7 @@ xkb_symbols "bolnagri" {
key <AE01> { [ 1, exclam, U0967, exclam ] };
key <AE02> { [ 2, at, U0968, at ] };
key <AE03> { [ 3, numbersign, U0969, numbersign ] };
- key <AE04> { [ 4, U20B9, U096A, dollar ] }; // Rupee symbol on $
+ key <AE04> { [ 4, dollar, U096A ] }; // Rupee symbol on AltGr+4
key <AE05> { [ 5, percent, U096B, percent ] };
key <AE06> { [ 6, asciicircum, U096C, asciicircum ] };
key <AE07> { [ 7, ampersand, U096D, ampersand ] };
@@ -165,7 +167,9 @@ xkb_symbols "bolnagri" {
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
// modifier_map Mod3 { Mode_switch };
+
include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
// based on a keyboard map from an 'xkb/symbols/ben' file
@@ -234,6 +238,9 @@ xkb_symbols "ben" {
key <AB08> { [ comma, U09B7 ] };
key <AB09> { [ period, U0964 ] };
key <AB10> { [ U09DF, U09AF ] };
+
+ include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
xkb_symbols "ben_probhat" {
@@ -307,6 +314,8 @@ xkb_symbols "ben_probhat" {
// modifier_map Lock { Caps_Lock };
// modifier_map Control{ Control_L };
+ include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
// Bengali Baishakhi, Bengali Baishakhi Inscript, Bengali Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812004@gmail.com>
@@ -670,6 +679,8 @@ xkb_symbols "guj" {
key <AB08> { [ comma, U0AB7 ] };
key <AB09> { [ period, U0964 ] };
key <AB10> { [ U0AAF, question ] };
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
@@ -736,7 +747,8 @@ xkb_symbols "kan" {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods = AltGr
};
-
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
// Description : A keymap for Malayalam
@@ -828,6 +840,9 @@ xkb_symbols "mal" {
key <AB09> { [ period , U0200d ] };
key <AB10> { [ U0d2f , question ] };
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
+
};
//Name : Lalitha
@@ -845,7 +860,7 @@ xkb_symbols "mal_lalitha" {
key <AE01> { [ 1, exclam, U0D67, exclam ] };
key <AE02> { [ 2, at, U0D68, at ] };
key <AE03> { [ 3, numbersign, U0D69, numbersign ] };
- key <AE04> { [ 4, dollar, U0D6A, dollar ] };
+ key <AE04> { [ 4, dollar, U0D6A ] };
key <AE05> { [ 5, percent, U0D6B, percent ] };
key <AE06> { [ 6, asciicircum, U0D6C, asciicircum ] };
key <AE07> { [ 7, ampersand, U0D6D, ampersand ] };
@@ -901,6 +916,7 @@ xkb_symbols "mal_lalitha" {
// modifier_map Control{ Control_L };
// modifier_map Mod3 { Mode_switch };
include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
@@ -964,6 +980,8 @@ xkb_symbols "ori" {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods = AltGr
};
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
// based on a keyboard map from an 'xkb/symbols/tml' file
@@ -1029,6 +1047,9 @@ xkb_symbols "tam" {
key <AB08> { [ comma, U0BB7 ] };
key <AB09> { [ period, U0964 ] };
key <AB10> { [ U0BAF, question ] };
+
+ include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
partial alphanumeric_keys
@@ -1340,6 +1361,8 @@ xkb_symbols "tel" {
symbols[Group1] = [ Mode_switch, Multi_key ],
virtualMods = AltGr
};
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
@@ -1425,6 +1448,9 @@ xkb_symbols "guru" {
key <AB08> { [ comma, less ] };
key <AB09> { [ period, U0964 ] };
key <AB10> { [ U0A2F, question ] };
+
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
//Name : Jhelum (Refind Inscript)
@@ -1443,7 +1469,7 @@ xkb_symbols "jhelum" {
key <AE01> { [ 1,exclam, U0A67, exclam ] };
key <AE02> { [ 2,at, U0A68, at ] };
key <AE03> { [ 3,numbersign, U0A69, numbersign ] };
- key <AE04> { [ 4,dollar, U0A6A, dollar ] };
+ key <AE04> { [ 4,dollar, U0A6A ] };
key <AE05> { [ 5,percent,U0A6B, percent ] };
key <AE06> { [ 6,U0A73, U0A6C,asciicircum ] };
key <AE07> { [ 7,U0A72,U0A6D,ampersand ] };
@@ -1458,7 +1484,7 @@ xkb_symbols "jhelum" {
key <AD01> { [ U0A4C, U0A14 ] }; // Q: oo, ooh
key <AD02> { [ U0A48, U0A10 ] }; // W: ee, ae
key <AD03> { [ U0A3E, U0A06 ] }; // E: a, aa
- key <AD04> { [ U0A40, U0A08 ] }; // R: ee, ai
+ key <AD04> { [ U0A40, U0A08, U20B9 ] }; // R: ee, ai, rupeesign
key <AD05> { [ U0A42, U0A0A ] }; // T: u, uu
key <AD06> { [ U0A30, U0A5C ] }; // Y: ra, raa
key <AD07> { [ U0A26, U0A27 ] }; // U: tha, thha
@@ -1563,6 +1589,8 @@ xkb_symbols "olpc" {
include "nbsp(zwnj3zwj4)"
include "group(olpc)"
+ include "rupeesign(4)"
+ include "level3(ralt_switch)"
};
partial alphanumeric_keys
@@ -1628,6 +1656,7 @@ xkb_symbols "hin-wx" {
key <AB10> { [ slash, question ] };
include "level3(ralt_switch)"
+ include "rupeesign(4)"
};
partial alphanumeric_keys
diff --git a/xorg-server/xkeyboard-config/symbols/it b/xorg-server/xkeyboard-config/symbols/it
index d70e49755..f0336e58b 100644
--- a/xorg-server/xkeyboard-config/symbols/it
+++ b/xorg-server/xkeyboard-config/symbols/it
@@ -298,3 +298,10 @@ xkb_symbols "ibm" {
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/it(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/jp b/xorg-server/xkeyboard-config/symbols/jp
index 4ef77f817..72985fd3e 100644
--- a/xorg-server/xkeyboard-config/symbols/jp
+++ b/xorg-server/xkeyboard-config/symbols/jp
@@ -292,3 +292,30 @@ xkb_symbols "dvorak" {
key <AB09> { [ v, V ] };
key <AB10> { [ z, Z ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6_suncompat" {
+ include "sun_vndr/jp(sun_type6_suncompat)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/jp(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type7_suncompat" {
+ include "sun_vndr/jp(sun_type7_suncompat)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "suncompat" {
+ include "sun_vndr/jp(suncompat)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type7" {
+ include "sun_vndr/jp(sun_type7)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/kr b/xorg-server/xkeyboard-config/symbols/kr
index 46251880d..ced9a0720 100644
--- a/xorg-server/xkeyboard-config/symbols/kr
+++ b/xorg-server/xkeyboard-config/symbols/kr
@@ -24,3 +24,10 @@ xkb_symbols "koreankeys_raltctl" {
key <RALT> { [ Hangul ] };
key <RCTL> { [ Hangul_Hanja ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/kr(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/lt b/xorg-server/xkeyboard-config/symbols/lt
index 5435460ce..206611d9f 100644
--- a/xorg-server/xkeyboard-config/symbols/lt
+++ b/xorg-server/xkeyboard-config/symbols/lt
@@ -312,3 +312,8 @@ xkb_symbols "us_dvorak" {
include "level3(ralt_switch)"
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/lt(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/lv b/xorg-server/xkeyboard-config/symbols/lv
index 567caa658..0eee7deea 100644
--- a/xorg-server/xkeyboard-config/symbols/lv
+++ b/xorg-server/xkeyboard-config/symbols/lv
@@ -520,3 +520,8 @@ xkb_symbols "apostrophecolemak" {
modifier_map Mod5 { <AC11> };
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/lv(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/nl b/xorg-server/xkeyboard-config/symbols/nl
index 4c94a65b2..5e3940b99 100644
--- a/xorg-server/xkeyboard-config/symbols/nl
+++ b/xorg-server/xkeyboard-config/symbols/nl
@@ -148,3 +148,10 @@ xkb_symbols "mac" {
// do just nothing
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/nl(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/no b/xorg-server/xkeyboard-config/symbols/no
index 8012570d5..208d1ecb2 100644
--- a/xorg-server/xkeyboard-config/symbols/no
+++ b/xorg-server/xkeyboard-config/symbols/no
@@ -251,3 +251,10 @@ xkb_symbols "colemak" {
key <AD09> { [ y, Y, leftarrow, yen ] };
key <AD10> { [ oslash, Ooblique, dead_acute, dead_doubleacute ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/no(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/pl b/xorg-server/xkeyboard-config/symbols/pl
index 02432acca..4c8ed1d5c 100644
--- a/xorg-server/xkeyboard-config/symbols/pl
+++ b/xorg-server/xkeyboard-config/symbols/pl
@@ -502,3 +502,8 @@ xkb_symbols "colemak" {
include "level3(ralt_switch)"
};
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/pl(sun_type6)"
+};
+
diff --git a/xorg-server/xkeyboard-config/symbols/pt b/xorg-server/xkeyboard-config/symbols/pt
index d55af93b6..ac3635c9b 100644
--- a/xorg-server/xkeyboard-config/symbols/pt
+++ b/xorg-server/xkeyboard-config/symbols/pt
@@ -218,3 +218,10 @@ xkb_symbols "nativo-epo" {
key <AB06> { [ gcircumflex, Gcircumflex, q, Q ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/pt(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ro b/xorg-server/xkeyboard-config/symbols/ro
index 58e58c561..eea515995 100644
--- a/xorg-server/xkeyboard-config/symbols/ro
+++ b/xorg-server/xkeyboard-config/symbols/ro
@@ -233,3 +233,8 @@ xkb_symbols "ergonomic" {
key <AC08> { [ icircumflex, Icircumflex, k, K ] };
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ro(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ru b/xorg-server/xkeyboard-config/symbols/ru
index a3dabefdf..0248dc6c0 100644
--- a/xorg-server/xkeyboard-config/symbols/ru
+++ b/xorg-server/xkeyboard-config/symbols/ru
@@ -651,3 +651,8 @@ xkb_symbols "ruu" {
include "level3(ralt_switch)"
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ru(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/se b/xorg-server/xkeyboard-config/symbols/se
index 827b091f8..04ce1d206 100644
--- a/xorg-server/xkeyboard-config/symbols/se
+++ b/xorg-server/xkeyboard-config/symbols/se
@@ -310,3 +310,10 @@ xkb_symbols "swl" {
key <AE09> { [ 0x110c97b, 0x110c90a, 0x110c98b, 0x110c965 ] };
key <AE10> { [ 0x110c974, 0x110c909, 0x110c98c, 0x110c968 ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/se(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/sk b/xorg-server/xkeyboard-config/symbols/sk
index 3a1b4a49b..e33b74a5e 100644
--- a/xorg-server/xkeyboard-config/symbols/sk
+++ b/xorg-server/xkeyboard-config/symbols/sk
@@ -101,3 +101,10 @@ xkb_symbols "qwerty_bksl" {
key <BKSL> { [ backslash, bar, slash, NoSymbol ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/sk(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/Makefile.am b/xorg-server/xkeyboard-config/symbols/sun_vndr/Makefile.am
index cc4c5b620..d738a9f82 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/Makefile.am
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/Makefile.am
@@ -6,5 +6,5 @@ dist_symbols_DATA = \
fi fr gb gr it \
jp kr lt lv nl \
no pl pt ro ru \
- se sk solaris tr tuv \
+ se sk solaris tr \
tw ua us
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ara b/xorg-server/xkeyboard-config/symbols/sun_vndr/ara
index 70e1b9b90..53ad9177e 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ara
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ara
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,90 +27,105 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+default partial alphanumeric_keys
+xkb_symbols "sun_type6" {
+
+ name[Group1]= "Arabic (Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
-partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]= "Arabic";
-
- key <TLDE> { [ Arabic_thal, Arabic_shadda, grave, asciitilde ] };
- key <AE01> { [ 1, exclam, 1, exclam ] };
- key <AE02> { [ 2, at, 2, at ] };
- key <AE03> { [ 3, numbersign, 3, numbersign ] };
- key <AE04> { [ 4, dollar, 4, dollar ] };
- key <AE05> { [ 5, percent, 5, percent ] };
- key <AE06> { [ 6, asciicircum, 6, asciicircum ] };
- key <AE07> { [ 7, ampersand, 7, ampersand ] };
- key <AE08> { [ 8, asterisk, 8, asterisk ] };
- key <AE09> { [ 9, parenright, 9, parenright ] };
- key <AE10> { [ 0, parenleft, 0, parenleft ] };
- key <AE11> { [ minus, underscore, minus, underscore ] };
- key <AE12> { [ equal, plus, equal, plus ] };
+ key <TLDE> { [ Arabic_thal, Arabic_shadda, grave, asciitilde ] };
+ key <AE01> { [ 0x1000661, exclam, 1, exclam ] };
+ key <AE02> { [ 0x1000662, at, 2, at ] };
+ key <AE03> { [ 0x1000663, numbersign, 3, numbersign ] };
+ key <AE04> { [ 0x1000664, dollar, 4, dollar ] };
+ key <AE05> { [ 0x1000665, percent, 5, percent ] };
+ key <AE06> { [ 0x1000666, asciicircum, 6, asciicircum ] };
+ key <AE07> { [ 0x1000667, ampersand, 7, ampersand ] };
+ key <AE08> { [ 0x1000668, asterisk, 8, asterisk ] };
+ key <AE09> { [ 0x1000669, parenright, 9, parenright ] };
+ key <AE10> { [ 0x1000660, parenleft, 0, parenleft ] };
+ key <AE11> { [ minus, underscore, minus, underscore ] };
+ key <AE12> { [ equal, plus, equal, plus ] };
- key <AD01> { [ Arabic_dad, Arabic_fatha, q, Q ] };
- key <AD02> { [ Arabic_sad, Arabic_fathatan, w, W ] };
- key <AD03> { [ Arabic_theh, Arabic_damma, e, E ] };
- key <AD04> { [ Arabic_qaf, Arabic_dammatan, r, R ] };
- key <AD05> { [ Arabic_feh, 0x100fef9, t, T ] };
- key <AD06> { [ Arabic_ghain, Arabic_hamzaunderalef, y, Y ] };
- key <AD07> { [ Arabic_ain, grave, u, U ] };
- key <AD08> { [ Arabic_ha, division, i, I ] };
- key <AD09> { [ Arabic_khah, multiply, o, O ] };
- key <AD10> { [ Arabic_hah, Arabic_semicolon, p, P ] };
- key <AD11> { [ Arabic_jeem, greater, bracketleft, braceleft ] };
- key <AD12> { [ Arabic_dal, less, bracketright, braceright ] };
-
- key <AC01> { [ Arabic_sheen, Arabic_kasra, a, A ] };
- key <AC02> { [ Arabic_seen, Arabic_kasratan, s, S ] };
- key <AC03> { [ Arabic_yeh, bracketright, d, D ] };
- key <AC04> { [ Arabic_beh, bracketleft, f, F ] };
- key <AC05> { [ Arabic_lam, 0x100fef7, g, G ] };
- key <AC06> { [ Arabic_alef, Arabic_hamzaonalef, h, H ] };
- key <AC07> { [ Arabic_teh, Arabic_tatweel, j, J ] };
- key <AC08> { [ Arabic_noon, Arabic_comma, k, K ] };
- key <AC09> { [ Arabic_meem, slash, l, L ] };
- key <AC10> { [ Arabic_kaf, colon, semicolon, colon ] };
- key <AC11> { [ Arabic_tah, quotedbl, apostrophe, quotedbl ] };
- key <BKSL> { [ backslash, bar, backslash, bar ] };
-
- key <LSGT> { [ bar, brokenbar, bar, brokenbar ] };
- key <AB01> { [Arabic_hamzaonyeh, asciitilde, z, Z ] };
- key <AB02> { [ Arabic_hamza, Arabic_sukun, x, X ] };
- key <AB03> { [Arabic_hamzaonwaw, braceright, c, C ] };
- key <AB04> { [ Arabic_ra, braceleft, v, V ] };
- key <AB05> { [ 0x100fefb, 0x100fef5, b, B ] };
- key <AB06> { [Arabic_alefmaksura, Arabic_maddaonalef, n, N ] };
- key <AB07> { [Arabic_tehmarbuta, apostrophe, m, M ] };
- key <AB08> { [ Arabic_waw, comma, comma, less ] };
- key <AB09> { [ Arabic_zain, period, period, greater ] };
- key <AB10> { [ Arabic_zah, Arabic_question_mark, slash, question ] };
+ key <AD01> { [ Arabic_dad, Arabic_fatha, q, Q ] };
+ key <AD02> { [ Arabic_sad, Arabic_fathatan, w, W ] };
+ key <AD03> { [ Arabic_theh, Arabic_damma, e, E ] };
+ key <AD04> { [ Arabic_qaf, Arabic_dammatan, r, R ] };
+ key <AD05> { [ Arabic_feh, 0x100fef9, t, T ] };
+ key <AD06> { [ Arabic_ghain, Arabic_hamzaunderalef, y, Y ] };
+ key <AD07> { [ Arabic_ain, grave, u, U ] };
+ key <AD08> { [ Arabic_ha, division, i, I ] };
+ key <AD09> { [ Arabic_khah, multiply, o, O ] };
+ key <AD10> { [ Arabic_hah, Arabic_semicolon, p, P ] };
+ key <AD11> { [ Arabic_jeem, greater, bracketleft, braceleft ] };
+ key <AD12> { [ Arabic_dal, less, bracketright, braceright ] };
+
+ key <AC01> { [ Arabic_sheen, Arabic_kasra, a, A ] };
+ key <AC02> { [ Arabic_seen, Arabic_kasratan, s, S ] };
+ key <AC03> { [ Arabic_yeh, bracketright, d, D ] };
+ key <AC04> { [ Arabic_beh, bracketleft, f, F ] };
+ key <AC05> { [ Arabic_lam, 0x100fef7, g, G ] };
+ key <AC06> { [ Arabic_alef, Arabic_hamzaonalef, h, H ] };
+ key <AC07> { [ Arabic_teh, Arabic_tatweel, j, J ] };
+ key <AC08> { [ Arabic_noon, Arabic_comma, k, K ] };
+ key <AC09> { [ Arabic_meem, slash, l, L ] };
+ key <AC10> { [ Arabic_kaf, colon, semicolon, colon ] };
+ key <AC11> { [ Arabic_tah, quotedbl, apostrophe, quotedbl ] };
+ key <BKSL> { [ backslash, bar, backslash, bar ] };
+
+ key <LSGT> { [ bar, brokenbar, bar, brokenbar ] };
+ key <AB01> { [ Arabic_hamzaonyeh, asciitilde, z, Z ] };
+ key <AB02> { [ Arabic_hamza, Arabic_sukun, x, X ] };
+ key <AB03> { [ Arabic_hamzaonwaw, braceright, c, C ] };
+ key <AB04> { [ Arabic_ra, braceleft, v, V ] };
+ key <AB05> { [ 0x100fefb, 0x100fef5, b, B ] };
+ key <AB06> { [ Arabic_alefmaksura, Arabic_maddaonalef, n, N ] };
+ key <AB07> { [ Arabic_tehmarbuta, apostrophe, m, M ] };
+ key <AB08> { [ Arabic_waw, comma, comma, less ] };
+ key <AB09> { [ Arabic_zain, period, period, greater ] };
+ key <AB10> { [ Arabic_zah, Arabic_question_mark, slash, question ] };
include "level3(ralt_switch)"
};
-
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ara(type6)"
+ include "sun_vndr/ara(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty" {
+ include "ara(qwerty)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "azerty" {
+ include "ara(azerty)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "digits" {
+ include "ara(digits)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty_digits" {
+ include "ara(qwerty_digits)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "azerty_digits" {
+ include "ara(azerty_digits)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "buckwalter" {
+ include "ara(buckwalter)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "ara(olpc)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/be b/xorg-server/xkeyboard-config/symbols/sun_vndr/be
index 202e8a4c1..5d66f34b6 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/be
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/be
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,32 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Belgium";
+ name[Group1]="Belgium (Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [twosuperior, threesuperior ] };
key <AE01> { [ ampersand, 1, bar ] };
@@ -91,8 +71,57 @@ xkb_symbols "type6" {
};
-
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/be(type6)"
+ include "sun_vndr/be(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss" {
+ include "be(oss)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_frbe" {
+ include "be(oss_frbe)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_latin9" {
+ include "be(oss_latin9)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_Sundeadkeys" {
+ include "be(oss_Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_sundeadkeys" {
+ include "be(oss_sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "iso-alternate" {
+ include "be(iso-alternate)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "be(sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "be(Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "be(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "wang" {
+ include "be(wang)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/br b/xorg-server/xkeyboard-config/symbols/sun_vndr/br
index 7ad2dd1cf..3651f9c81 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/br
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/br
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Brazil";
+ name[Group1]= "Portuguese (Brazil, Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ apostrophe, quotedbl, notsign ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
@@ -94,8 +75,47 @@ xkb_symbols "type6" {
};
-
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/br(type6)"
+ include "sun_vndr/br(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "abnt2" {
+ include "br(abnt2)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "br(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "thinkpad" {
+ include "br(thinkpad)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "br(olpc)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "br(dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nativo" {
+ include "br(nativo)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nativo-us" {
+ include "br(nativo-us)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nativo-epo" {
+ include "br(nativo-epo)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ca b/xorg-server/xkeyboard-config/symbols/sun_vndr/ca
index 4705123dc..114ef3a7a 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ca
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ca
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,32 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+default alphanumeric_keys
+xkb_symbols "sun_type6" {
+ name[Group1]="Multilingual (Canada, Sun Type 6/7)";
-partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Canada Bilingual";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ slash, bar, backslash ]};
key <AE01> { [ 1, exclam, plusminus ]};
@@ -91,7 +71,62 @@ xkb_symbols "type6" {
};
-partial alphanumeric_keys
+alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ca(type6)"
+ include "sun_vndr/ca(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr" {
+ include "ca(fr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr-dvorak" {
+ include "ca(fr-dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr-legacy" {
+ include "ca(fr-legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "multi" {
+ include "ca(multi)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "multi-2gr" {
+ include "ca(multi-2gr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ike" {
+ include "ca(ike)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "multix" {
+ include "ca(multix)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "ca(olpc)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "eng" {
+ include "ca(eng)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "kut" {
+ include "ca(kut)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "shs" {
+ include "ca(shs)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ch b/xorg-server/xkeyboard-config/symbols/sun_vndr/ch
index 8a41ea303..213b4f08e 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ch
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ch
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys
+xkb_symbols "sun_type6_de" {
-partial default alphanumeric_keys
-xkb_symbols "de_type6" {
+ name[Group1]= "German (Switzerland, Sun Type 6/7)";
- name[Group1]= "Switzerland - German";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ section, degree ] };
key <AE01> { [ 1, plus, bar ] };
@@ -86,12 +67,12 @@ xkb_symbols "de_type6" {
};
-
-
partial alphanumeric_keys
-xkb_symbols "fr_type6" {
+xkb_symbols "sun_type6_fr" {
+
+ name[Group1]= "French (Switzerland, Sun Type 6/7)";
- name[Group1]= "Switzerland - French, Sun type 6";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ section, degree ] };
key <AE01> { [ 1, plus, bar ] };
@@ -126,8 +107,62 @@ xkb_symbols "fr_type6" {
};
-
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ch(de_type6)"
+ include "sun_vndr/ch(sun_type6_de)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "legacy" {
+ include "ch(legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "de" {
+ include "ch(de)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "de_Sundeadkeys" {
+ include "ch(de_Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "de_sundeadkeys" {
+ include "ch(de_sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "de_nodeadkeys" {
+ include "ch(de_nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr" {
+ include "ch(fr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr_Sundeadkeys" {
+ include "ch(fr_Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr_sundeadkeys" {
+ include "ch(fr_sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr_nodeadkeys" {
+ include "ch(fr_nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "de_mac" {
+ include "ch(de_mac)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fr_mac" {
+ include "ch(fr_mac)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/cz b/xorg-server/xkeyboard-config/symbols/sun_vndr/cz
index b46f01c2b..0818c9ab0 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/cz
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/cz
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,32 +27,13 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="Czech (Sun Type 6/7";
- name[Group1]="Czech";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ semicolon, dead_abovering, quoteleft, asciitilde ] };
key <AE01> { [ plus, 1, exclam, asciitilde ] };
@@ -101,5 +82,30 @@ xkb_symbols "type6" {
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/cz(type6)"
+ include "sun_vndr/cz(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bksl" {
+ include "cz(bksl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty" {
+ include "cz(qwerty)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty_bksl" {
+ include "cz(qwerty_bksl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ucw" {
+ include "cz(ucw)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak-ucw" {
+ include "cz(dvorak-ucw)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/de b/xorg-server/xkeyboard-config/symbols/sun_vndr/de
index 5177b989a..7736088bb 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/de
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/de
@@ -1,6 +1,5 @@
//
-//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -28,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Germany";
+ name[Group1]="German (Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ asciicircum, degree ] };
key <AE02> { [ 2, quotedbl, twosuperior ] };
@@ -86,55 +66,106 @@ xkb_symbols "type6" {
};
partial alphanumeric_keys
-xkb_symbols "type4" {
+ xkb_symbols "basic" {
+ include "sun_vndr/de(sun_type6)"
+};
- name[Group1]="Germany - Sun type 4";
+partial alphanumeric_keys
+ xkb_symbols "legacy" {
+ include "de(legacy)"
+};
- key <BKSL> { [ less, braceleft ] };
- key <BRCR> { [ greater, braceright ] };
- key <DELE> { [ Delete ] };
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "de(nodeadkeys)"
+};
- key <AE01> { [ 1, plus, exclam ] };
- key <AE02> { [ 2, quotedbl, at, oneeighth ] };
- key <AE03> { [ 3, asterisk, numbersign, sterling ] };
- key <AE04> { [ 4, ccedilla, cent ] };
- key <AE05> { [ 5, percent, asciitilde ] };
- key <AE06> { [ 6, ampersand, section ] };
- key <AE07> { [ 7, slash, bar ] };
- key <AE08> { [ 8, parenleft, degree ] };
- key <AE09> { [ 9, parenright, backslash ] };
- key <AE10> { [ 0, equal, asciicircum ] };
- Key <AE11> { [ quoteright, question, quoteleft ] };
- key <AE12> { [ dead_circumflex, dead_grave ] };
+partial alphanumeric_keys
+ xkb_symbols "deadgraveacute" {
+ include "de(deadgraveacute)"
+};
- key <AD03> { [ e, E, EuroSign, EuroSign ] };
- key <AD06> { [ z, Z, leftarrow, yen ] };
- key <AD11> { [ udiaeresis, egrave, dead_diaeresis, dead_abovering ] };
- key <AD12> { [ dead_diaeresis, dead_acute ] };
+partial alphanumeric_keys
+ xkb_symbols "deadacute" {
+ include "de(deadacute)"
+};
- key <AC02> { [ s, S ] };
- key <AC07> { [ j, J, dead_belowdot, dead_abovedot ] };
- key <AC10> { [ odiaeresis, eacute, dead_doubleacute, dead_belowdot ] };
- key <AC11> { [ adiaeresis, agrave, dead_circumflex, dead_caron ] };
- key <TLDE> { [ dollar, dead_tilde, sterling ] };
+partial alphanumeric_keys
+ xkb_symbols "ro" {
+ include "de(ro)"
+};
- key <AB01> { [ y, Y, guillemotright ] };
- key <AB02> { [ x, X, guillemotleft ] };
- key <AB04> { [ v, V, doublelowquotemark, singlelowquotemark ] };
- key <AB05> { [ b, B, leftdoublequotemark, leftsinglequotemark ] };
- key <AB06> { [ n, N, rightdoublequotemark, rightsinglequotemark ] };
- key <AB07> { [ m, M, mu ] };
- key <AB08> { [ comma, semicolon, periodcentered, multiply ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
+partial alphanumeric_keys
+ xkb_symbols "ro_nodeadkeys" {
+ include "de(ro_nodeadkeys)"
+};
- include "level3(ralt_switch)"
- include "kpdl(comma)"
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "de(dvorak)"
+};
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "de(Sundeadkeys)"
};
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "de(sundeadkeys)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/de(type6)"
+ xkb_symbols "neo_base" {
+ include "de(neo_base)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "neo" {
+ include "de(neo)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "de(mac)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "mac_nodeadkeys" {
+ include "de(mac_nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dsb" {
+ include "de(dsb)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dsb_qwertz" {
+ include "de(dsb_qwertz)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty" {
+ include "de(qwerty)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ru" {
+ include "de(ru)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "htcdream" {
+ include "de(htcdream)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "us" {
+ include "de(us)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "hu" {
+ include "de(hu)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/dk b/xorg-server/xkeyboard-config/symbols/sun_vndr/dk
index e5db30e7f..9975486b8 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/dk
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/dk
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="Danish (Sun Type 6/7)";
- name[Group1]="Denmark";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ onehalf, section ] };
key <AE02> { [ 2, quotedbl, at ] };
@@ -81,67 +62,27 @@ xkb_symbols "type6" {
};
-
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Denmark - Sun type 4";
-
- key <BKSL> { [ onehalf, section ] };
- key <BRCR> { [ asciitilde, asciicircum ] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, numbersign, sterling ] };
- key <AE04> { [ 4, currency, dollar ] };
- key <AE06> { [ 6, ampersand ] };
- key <AE07> { [ 7, slash, braceleft ] };
- key <AE08> { [ 8, parenleft, bracketleft ] };
- key <AE09> { [ 9, parenright, bracketright ] };
- key <AE10> { [ 0, equal, braceright ] };
- key <AE11> { [ plus, question ] };
- key <AE12> { [ dead_acute, dead_grave, bar ] };
- key <AD03> { [ e, E, EuroSign ] };
- key <AD11> { [ aring, Aring ] };
- key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde ] };
- key <LCTL> { [ Caps_Lock ] };
- key <AC10> { [ ae, AE ] };
- key <AC11> { [ ooblique, Ooblique ] };
- key <TLDE> { [ quoteright, asterisk, quoteleft ] };
- key <LSGT> { [ less, greater, backslash ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
- key <CAPS> { [ Control_L ] };
- key <COMP> { [ SunAltGraph ] };
- key <ALGR> { [ SunCompose ] };
-
- include "level3(ralt_switch)"
- include "kpdl(comma)"
-
+ xkb_symbols "basic" {
+ include "sun_vndr/dk(sun_type6)"
};
-
partial alphanumeric_keys
-xkb_symbols "type5" {
-
- include "sun_vndr/dk(type4)"
-
- name[Group1]="Denmark - Sun type 5";
-
- key <AE05> { [ 5, percent, asciitilde ] };
- key <AE06> { [ 6, ampersand, asciicircum ] };
- key <AE07> { [ 7, slash, braceleft ] };
- key <AE08> { [ 8, parenleft, bracketleft ] };
- key <AE09> { [ 9, parenright, bracketright ] };
- key <AE10> { [ 0, equal, braceright ] };
- key <BKSL> { [ quoteright, asterisk, quoteleft ] };
-
- include "level3(ralt_switch)"
- include "kpdl(comma)"
+ xkb_symbols "nodeadkeys" {
+ include "dk(nodeadkeys)"
+};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "dk(mac)"
};
+partial alphanumeric_keys
+ xkb_symbols "mac_nodeadkeys" {
+ include "dk(mac_nodeadkeys)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/dk(type6)"
+ xkb_symbols "dvorak" {
+ include "dk(dvorak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ee b/xorg-server/xkeyboard-config/symbols/sun_vndr/ee
index 0530f9e2f..6f8113317 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ee
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ee
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
+default alphanumeric_keys
+xkb_symbols "sun_type6" {
-partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Estonia";
+ name[Group1]="Estonian (Sun Type 6/7)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ dead_caron, dead_tilde, notsign, notsign ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
@@ -113,5 +92,20 @@ xkb_symbols "type6" {
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ee(type6)"
+ include "sun_vndr/ee(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "ee(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "ee(dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "us" {
+ include "ee(us)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/es b/xorg-server/xkeyboard-config/symbols/sun_vndr/es
index 6d28bc541..60557f579 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/es
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/es
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -26,32 +26,13 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="Spanish (Sun Type 6/7)";
- name[Group1]="Spain";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ masculine, ordfeminine, backslash ] };
key <LSGT> { [ less, greater ] };
@@ -78,68 +59,59 @@ xkb_symbols "type6" {
key <AB10> { [ minus, underscore ] };
include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/es(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "es(Sundeadkeys)"
+};
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "es(sundeadkeys)"
};
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "es(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "es(dvorak)"
+};
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Spain - Sun type 4";
+ xkb_symbols "cat" {
+ include "es(cat)"
+};
- key <BKSL> { [ bracketleft, braceleft, guillemotleft ] };
- key <BRCR> { [ bracketright, braceright, guillemotright ] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, periodcentered, numbersign ] };
- key <AE05> { [ 5, percent, degree ] };
- key <AE06> { [ 6, ampersand, notsign ] };
- key <AE07> { [ 7, slash ] };
- key <AE08> { [ 8, parenleft ] };
- key <AE09> { [ 9, parenright, backslash ] };
- key <AE10> { [ 0, equal, bar ] };
- key <AE11> { [ quoteright, question, quoteleft ] };
- key <AE12> { [ exclamdown, questiondown ] };
- key <AD03> { [ e, E, EuroSign ] };
- key <AD09> { [ o, O, masculine ] };
- key <AD11> { [ dead_grave, dead_circumflex, asciicircum ] };
- key <AD12> { [ plus, asterisk, asciitilde ] };
- key <AC01> { [ a, A, ordfeminine ] };
- key <AC10> { [ ntilde, Ntilde ] };
- key <AC11> { [ dead_acute, dead_diaeresis ] };
- key <TLDE> { [ ccedilla, Ccedilla ] };
- key <RALT> { [ Alt_R ] };
- key <LCTL> { [ Caps_Lock ] };
- key <CAPS> { [ Control_L ] };
- key <LSGT> { [ less, greater ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
-
+partial alphanumeric_keys
+ xkb_symbols "ast" {
+ include "es(ast)"
};
-
partial alphanumeric_keys
-xkb_symbols "type5" {
- include "sun_vndr/es(type4)"
+ xkb_symbols "mac" {
+ include "es(mac)"
+};
- name[Group1]="Spain - Sun type 5";
-
- key <AE03> { [ 3, periodcentered, numbersign ] };
- key <AE04> { [ 4, dollar, asciicircum ] };
- key <AE05> { [ 5, percent, asciitilde ] };
- key <AE07> { [ 7, slash, braceleft ]};
- key <AE08> { [ 8, parenleft, bracketleft ]};
- key <AE09> { [ 9, parenright, bracketright ]};
- key <AE10> { [ 0, equal, braceright ]};
- key <AE11> { [ quoteright, question, quoteleft ] };
- key <AD11> { [ dead_grave, dead_circumflex, bracketleft ] };
- key <AD12> { [ dead_acute, dead_diaeresis, braceleft ] };
-
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "es(olpc)"
};
+partial alphanumeric_keys
+ xkb_symbols "deadtilde" {
+ include "es(deadtilde)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/es(type6)"
+ xkb_symbols "olpc2" {
+ include "es(olpc2)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/fi b/xorg-server/xkeyboard-config/symbols/sun_vndr/fi
index eaa19e848..13e822c8f 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/fi
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/fi
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -26,32 +26,13 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="Finnish (Sun Type 6/7)";
- name[Group1]="Finland";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ section, onehalf ] };
key <AE01> { [ 1, exclam ] };
@@ -79,11 +60,39 @@ xkb_symbols "type6" {
include "level3(ralt_switch)"
include "kpdl(comma)"
+};
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/fi(sun_type6)"
};
+partial alphanumeric_keys
+ xkb_symbols "kotoistus" {
+ include "fi(kotoistus)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/fi(type6)"
+ xkb_symbols "classic" {
+ include "fi(classic)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fi" {
+ include "fi(fi)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "fi(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "smi" {
+ include "fi(smi)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "fi(mac)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/fr b/xorg-server/xkeyboard-config/symbols/sun_vndr/fr
index a3850ba5f..f046c3f85 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/fr
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/fr
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="France";
+ name[Group1]="French (Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ twosuperior ] };
key <AE01> { [ ampersand, 1 ] };
@@ -86,11 +67,109 @@ xkb_symbols "type6" {
key <AB10> { [ exclam, section ] };
include "level3(ralt_switch)"
+};
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/fr(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "fr(olpc)"
};
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "fr(Sundeadkeys)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/fr(type6)"
+ xkb_symbols "sundeadkeys" {
+ include "fr(sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "fr(nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss" {
+ include "fr(oss)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_latin9" {
+ include "fr(oss_latin9)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_Sundeadkeys" {
+ include "fr(oss_Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_sundeadkeys" {
+ include "fr(oss_sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oss_nodeadkeys" {
+ include "fr(oss_nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "latin9" {
+ include "fr(latin9)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "latin9_Sundeadkeys" {
+ include "fr(latin9_Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "latin9_sundeadkeys" {
+ include "fr(latin9_sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "latin9_nodeadkeys" {
+ include "fr(latin9_nodeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bepo" {
+ include "fr(bepo)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bepo_latin9" {
+ include "fr(bepo_latin9)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "fr(dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bre" {
+ include "fr(bre)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "oci" {
+ include "fr(oci)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "fr(mac)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "geo" {
+ include "fr(geo)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/gb b/xorg-server/xkeyboard-config/symbols/sun_vndr/gb
index 78287ec06..f329c5fd5 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/gb
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/gb
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="English (UK, Sun Type 6/7)";
- name[Group1]="United Kingdom";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ quoteleft, notsign, brokenbar ] };
@@ -63,40 +44,44 @@ xkb_symbols "type6" {
key <LSGT> { [ backslash, bar ] };
include "level3(ralt_switch)"
-
};
-
partial alphanumeric_keys
-xkb_symbols "type5" {
-
- name[Group1]="United Kingdom - Sun type 5";
-
- key <TLDE> { [ quoteleft, notsign, brokenbar ] };
- key <AD03> { [ e, E, EuroSign ] };
-
- include "level3(ralt_switch)"
-
+ xkb_symbols "basic" {
+ include "sun_vndr/gb(sun_type6)"
};
-
partial alphanumeric_keys
-xkb_symbols "type4" {
+ xkb_symbols "intl" {
+ include "gb(intl)"
+};
- name[Group1]="United Kingdom - Sun type 4";
+partial alphanumeric_keys
+ xkb_symbols "extd" {
+ include "gb(extd)"
+};
- key <AE01> { [ 1, exclam, brokenbar ] };
- key <AE03> { [ 3, sterling, numbersign ] };
- key <AE04> { [ 4, dollar, EuroSign ] };
- key <AE11> { [ minus, underscore, notsign ] };
- key <AD03> { [ e, E, EuroSign ] };
+partial alphanumeric_keys
+ xkb_symbols "colemak" {
+ include "gb(colemak)"
+};
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "gb(dvorak)"
+};
+partial alphanumeric_keys
+ xkb_symbols "dvorakukp" {
+ include "gb(dvorakukp)"
};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "gb(mac)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/gb(type6)"
+ xkb_symbols "mac_intl" {
+ include "gb(mac_intl)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/gr b/xorg-server/xkeyboard-config/symbols/sun_vndr/gr
index 1f3fac799..218e95051 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/gr
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/gr
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+default alphanumeric_keys
+xkb_symbols "sun_type6" {
+ name[Group1]="Greek (Sun Type 6/7)";
-partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Greece";
-
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ grave, asciitilde, onehalf ] };
key <AE01> { [ 1, exclam ] };
@@ -96,22 +75,46 @@ xkb_symbols "type6" {
key <BKSL> { [ backslash, bar, brokenbar ] };
key <LSGT> { [ guillemotleft, guillemotright, brokenbar ] };
- key <AB01> { [ Greek_zeta, Greek_ZETA ] };
- key <AB02> { [ Greek_chi, Greek_CHI ] };
- key <AB03> { [ Greek_psi, Greek_PSI, copyright ] };
- key <AB04> { [ Greek_omega, Greek_OMEGA ] };
- key <AB05> { [ Greek_beta, Greek_BETA ] };
- key <AB06> { [ Greek_nu, Greek_NU ] };
- key <AB07> { [ Greek_mu, Greek_MU ] };
+ key <AB01> { [ Greek_zeta, Greek_ZETA ] };
+ key <AB02> { [ Greek_chi, Greek_CHI ] };
+ key <AB03> { [ Greek_psi, Greek_PSI, copyright ] };
+ key <AB04> { [ Greek_omega, Greek_OMEGA ] };
+ key <AB05> { [ Greek_beta, Greek_BETA ] };
+ key <AB06> { [ Greek_nu, Greek_NU ] };
+ key <AB07> { [ Greek_mu, Greek_MU ] };
key <AB08> { [ comma, less, guillemotleft ] };
key <AB09> { [ period, greater, guillemotright ] };
key <AB10> { [ slash, question ] };
include "level3(ralt_switch)"
+};
+alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/gr(sun_type6)"
};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/gr(type6)"
+ xkb_symbols "simple" {
+ include "gr(simple)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bare" {
+ include "gr(bare)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "extended" {
+ include "gr(extended)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "polytonic" {
+ include "gr(polytonic)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "gr(nodeadkeys)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/it b/xorg-server/xkeyboard-config/symbols/sun_vndr/it
index acd94a2fb..d73ef6e64 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/it
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/it
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]= "Italian (Sun Type 6/7)";
- name[Group1]="Italy";
+ include "sun_vndr/us(sun_type6)"
key <LSGT> { [ less, greater ] };
key <TLDE> { [ backslash, bar ] };
@@ -75,66 +56,44 @@ xkb_symbols "type6" {
key <AB10> { [ minus, underscore ] };
include "level3(ralt_switch)"
-
};
-
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Italy - Sun type 4";
-
- key <BKSL> { [ bracketleft, braceleft, guillemotleft ] };
- key <BRCR> { [ bracketright, braceright, guillemotright ] };
- key <AE02> { [ 2, quotedbl, twosuperior ] };
- key <AE03> { [ 3, sterling, threesuperior ] };
- key <AE06> { [ 6, ampersand, notsign ] };
- key <AE06> { [ 7, slash ] };
- key <AE06> { [ 8, parenleft ] };
- key <AE09> { [ 9, parenright, backslash ] };
- key <AE10> { [ 0, equal, bar ] };
- key <AE11> { [ quoteright, question, quoteleft ] };
- key <AE12> { [ igrave, asciicircum ] };
-
- key <AD11> { [ egrave, eacute ] };
- key <AD12> { [ plus, asterisk, asciitilde ] };
-
- key <AC10> { [ ograve, ccedilla, at ] };
- key <AC11> { [ agrave, degree, numbersign ] };
- key <TLDE> { [ ugrave, section ] };
-
- key <LSGT> { [ less, greater ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
-
-
- key <LALT> { [ Alt_L ] };
- key <COMP> { [ SunCompose ] };
- key <RALT> { [ SunAltGraph ] };
- key <LCTL> { [ Caps_Lock ] };
- key <CAPS> { [ Control_L ] };
-
- include "level3(ralt_switch)"
+ xkb_symbols "basic" {
+ include "sun_vndr/it(sun_type6)"
+};
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "it(nodeadkeys)"
};
-
partial alphanumeric_keys
-xkb_symbols "type5" {
+ xkb_symbols "mac" {
+ include "it(mac)"
+};
- name[Group1]="Italy - Sun type 5";
+partial alphanumeric_keys
+ xkb_symbols "geo" {
+ include "it(geo)"
+};
- key <AE08> { [ 8, parenleft, braceleft ] };
- key <AE09> { [ 9, parenright, braceright ] };
- key <BKSL> { [ ugrave, section, asciitilde ] };
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "it(olpc)"
+};
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "us" {
+ include "it(us)"
+};
+partial alphanumeric_keys
+ xkb_symbols "htcdream" {
+ include "it(htcdream)"
};
-
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/it(type6)"
+ xkb_symbols "ibm" {
+ include "it(ibm)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/jp b/xorg-server/xkeyboard-config/symbols/sun_vndr/jp
index 26911494a..c30d31e38 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/jp
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/jp
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -26,791 +26,154 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-//
-//Copyright 1996, 1998 The Open Group
-//
-//All Rights Reserved.
-//
-//The above copyright notice and this permission notice shall be
-//included in all copies or substantial portions of the Software.
-//
-//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-//OTHER DEALINGS IN THE SOFTWARE.
-//
-//Except as contained in this notice, the name of The Open Group shall
-//not be used in advertising or otherwise to promote the sale, use or
-//other dealings in this Software without prior written authorization
-//from The Open Group.
-//
-// US/ASCII layout for a Type 4 Sun keyboard
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys modifier_keys
+xkb_symbols "sun_type6_suncompat" {
-xkb_symbols "basic" {
- // Alphanumeric section
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
- key <BKSP> { [ BackSpace ] };
-
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ] };
- key <AD08> { [ i, I ], [ kana_NI ] };
- key <AD09> { [ o, O ], [ kana_RA ] };
- key <AD10> { [ p, P ], [ kana_SE ] };
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
- key <RTRN> { [ Return ] };
-
- key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ] };
- key <AC08> { [ k, K ], [ kana_NO ] };
- key <AC09> { [ l, L ], [ kana_RI ] };
- key <AC10> { [ semicolon, plus ], [ kana_RE ] };
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
- key <TLDE> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
-
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ] };
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
- key <UNDR> { [ backslash, underscore], [ kana_RO ] };
-
- key <SPCE> { [ space ] };
- key <KANJ> { [ Kanji ] };
- key <HENK> { [ Henkan_Mode ] };
-// key <LNFD> { [ backslash, underscore], [ kana_RO ]};
- // End alphanumeric section
-
- // Begin "Function" section
- key <ESC> { [ Escape ] };
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <BKSL> { [ backslash, bar ], [ prolongedsound ] };
-// key <BRCR> { [ Linefeed ] };
- key <EXEC> { [ Execute ] };
-};
-xkb_symbols "type4" {
-
- // Alphanumeric section
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
- key <BKSP> { [ BackSpace ] };
-
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ] };
- key <AD08> { [ i, I ], [ kana_NI ] };
- key <AD09> { [ o, O ], [ kana_RA ] };
- key <AD10> { [ p, P ], [ kana_SE ] };
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
- key <RTRN> { [ Return ] };
-
- key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ] };
- key <AC08> { [ k, K ], [ kana_NO ] };
- key <AC09> { [ l, L ], [ kana_RI ] };
- key <AC10> { [ semicolon, plus ], [ kana_RE ] };
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
- key <TLDE> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
-
- key <LFSH> { [ Shift_L ] };
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ] };
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
- key <UNDR> { [ backslash, underscore], [ kana_RO ] };
- key <RTSH> { [ Shift_R ] };
-
- key <LCTL> { [ Control_L ] };
- key <SPCE> { [ space ] };
- key <KANJ> { [ Kanji ] };
- key <HENK> { [ Henkan_Mode ] };
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <LNFD> { [ backslash, underscore], [ kana_RO ]};
- key <COMP> { [ Multi_key ] };
- key <EXEC> { [ Execute ] };
-// key <TLFD> { [ Linefeed ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <ESC> { [ Escape ] };
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <BKSL> { [ backslash, bar ], [ prolongedsound ] };
- key <BRCR> { [ Linefeed ] };
-
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2 ], [ Print ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock, Break ] };
- key <PAUS> { [ R1, R1 ], [ Pause ] };
- key <DELE> { [ Delete ] };
- key <HELP> { [ Help ] };
-
- // End "Editing" section, begin "Keypad"
- key <NMLK> { [ Num_Lock ] };
- key <KPEQ> { [ R4, R4 ], [ KP_Equal ] };
- key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
- key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
- key <KPSU> { [ KP_Subtract ] };
-
- key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
- key <KP8> { [ Up, R8 ], [ KP_8 ] };
- key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ Left, R10 ], [ KP_4 ] };
- key <KP5> { [ R11, R11 ], [ KP_5 ] };
- key <KP6> { [ Right, R12 ], [ KP_6 ] };
-
- key <KP1> { [ R13, R13 ], [ KP_1, End ] };
- key <KP2> { [ Down, R14 ], [ KP_2 ] };
- key <KP3> { [ R15, R15 ], [ KP_3, Next ] };
- key <KPEN> { [ KP_Enter ] };
- key <KP0> { [ KP_Insert, KP_Insert], [ KP_0 ] };
- key <KPDL> { [ Delete, Delete ], [ KP_Decimal ] };
- // End "Keypad" section
-
-
- // begin modifier mappings
- modifier_map Shift { Shift_R, Shift_L };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Mode_switch };
- modifier_map Mod3 { Num_Lock };
- modifier_map Mod4 { Alt_L };
-};
+ include "inet(evdev)"
+ include "sun_vndr/us(sunbasic)"
-// US/ASCII layout for a Type 5 Sun keyboard
-xkb_symbols "type5" {
-
- // Alphanumeric section
- key <TLDE> { [ backslash, bar ], [ prolongedsound ] };
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
- key <BKSP> { [ BackSpace ] };
-
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ] };
- key <AD08> { [ i, I ], [ kana_NI ] };
- key <AD09> { [ o, O ], [ kana_RA ] };
- key <AD10> { [ p, P ], [ kana_SE ] };
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
- key <RTRN> { [ Return ] };
-
- key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ] };
- key <AC08> { [ k, K ], [ kana_NO ] };
- key <AC09> { [ l, L ], [ kana_RI ] };
- key <AC10> { [ semicolon, plus ], [ kana_RE ] };
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
+ key <AE13> { [ backslash, bar ], [ prolongedsound ] };
+ key <AE01> { [ 1, exclam ], [ kana_NU ] };
+ key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
+ key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
+ key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
+ key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
+ key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
+ key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
+ key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
+ key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
+ key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
+ key <AE11> { [ minus, equal ], [ kana_HO ] };
+ key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
+
+ key <AD01> { [ q, Q ], [ kana_TA ] };
+ key <AD02> { [ w, W ], [ kana_TE ] };
+ key <AD03> { [ e, E ], [ kana_I, kana_i ] };
+ key <AD04> { [ r, R ], [ kana_SU ] };
+ key <AD05> { [ t, T ], [ kana_KA ] };
+ key <AD06> { [ y, Y ], [ kana_N ] };
+ key <AD07> { [ u, U ], [ kana_NA ] };
+ key <AD08> { [ i, I ], [ kana_NI ] };
+ key <AD09> { [ o, O ], [ kana_RA ] };
+ key <AD10> { [ p, P ], [ kana_SE ] };
+ key <AD11> { [ at, quoteleft ], [ voicedsound ] };
+ key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
+
+ key <AC01> { [ a, A ], [ kana_CHI ] };
+ key <AC02> { [ s, S ], [ kana_TO ] };
+ key <AC03> { [ d, D ], [ kana_SHI ] };
+ key <AC04> { [ f, F ], [ kana_HA ] };
+ key <AC05> { [ g, G ], [ kana_KI ] };
+ key <AC06> { [ h, H ], [ kana_KU ] };
+ key <AC07> { [ j, J ], [ kana_MA ] };
+ key <AC08> { [ k, K ], [ kana_NO ] };
+ key <AC09> { [ l, L ], [ kana_RI ] };
+ key <AC10> { [ semicolon, plus ], [ kana_RE ] };
+ key <AC11> { [ colon, asterisk ], [ kana_KE ] };
key <BKSL> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
- key <LFSH> { [ Shift_L ] };
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ] };
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
- key <UNDR> { [ backslash, underscore], [ kana_RO ] };
- key <RTSH> { [ Shift_R ] };
-
- key <LCTL> { [ Control_L ] };
-// key <RCTL> { [ Control_R ] };
- key <EXEC> { [ Execute ] };
- key <SPCE> { [ space ] };
- key <KANJ> { [ Kanji ] };
- key <HENK> { [ Henkan_Mode ] };
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <ESC> { [ Escape ] };
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2 ], [ Print, SunSys_Req ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock ] };
- key <PAUS> { [ R1, R1 ], [ Pause, Break ] };
- key <LEFT> { [ Left ] };
- key <RGHT> { [ Right ] };
- key <UP> { [ Up ] };
- key <DOWN> { [ Down ] };
-
- key <DELE> { [ Delete ] };
- key <INS> { [ Insert ] };
- key <PGUP> { [ Prior ] };
- key <PGDN> { [ Next ] };
- key <HOME> { [ Home ] };
- key <END> { [ End ] };
- key <HELP> { [ Help ] };
-
- // End "Editing" section, begin "Keypad"
- key <NMLK> { [ Num_Lock ] };
- key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
- key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
- key <KPSU> { [ R4, R4 ], [ KP_Subtract ] };
-
- key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
- key <KP8> { [ Up, R8 ], [ KP_8 ] };
- key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ Left, R10 ], [ KP_4 ] };
- key <KP5> { [ R11, R11 ], [ KP_5 ] };
- key <KP6> { [ Right, R12 ], [ KP_6 ] };
-
- key <KP1> { [ R13, R13 ], [ KP_1, End ] };
- key <KP2> { [ Down, R14 ], [ KP_2 ] };
- key <KP3> { [ R15, R15 ], [ KP_3 ] };
- key <KPEN> { [ KP_Enter ] };
-
- key <KP0> { [ KP_Insert, KP_Insert ], [ KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Delete ], [ KP_Decimal ] };
- // End "Keypad" section,
- // begin "four keys up on the right"
-
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
- key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
-
- // begin modifier mappings
- modifier_map Shift { Shift_R };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Alt_R };
- modifier_map Mod3 { Num_Lock };
- modifier_map Mod4 { Alt_L };
+ key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
+ key <AB02> { [ x, X ], [ kana_SA ] };
+ key <AB03> { [ c, C ], [ kana_SO ] };
+ key <AB04> { [ v, V ], [ kana_HI ] };
+ key <AB05> { [ b, B ], [ kana_KO ] };
+ key <AB06> { [ n, N ], [ kana_MI ] };
+ key <AB07> { [ m, M ], [ kana_MO ] };
+ key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
+ key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
+ key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
+ key <AB11> { [ backslash, underscore], [ kana_RO ] };
+ key <UNDR> { [ backslash, underscore], [ kana_RO ] };
+
+ key <EXEC> { [ Execute ] };
+ key <KANJ> { [ Kanji ] };
+ key <HENK> { [ Henkan_Mode ] };
+ key <ALGR> { [ Kana_Lock, Mode_switch ] };
+
+ key <COMP> { [ Multi_key ] };
+ key <SYRQ> { [ SunSys_Req ] };
+
+ modifier_map Mod3 { Kana_Lock };
+
};
-xkb_symbols "type5hobo" {
-
- // Alphanumeric section
- key <TLDE> { [ backslash, bar ], [ prolongedsound ] };
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ], [ KP_7 ]};
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ], [ KP_8 ]};
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ], [ KP_9 ]};
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ], [ KP_Multiply]};
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
- key <BKSP> { [ BackSpace ] };
-
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ], [ KP_4 ] };
- key <AD08> { [ i, I ], [ kana_NI ], [ KP_5 ] };
- key <AD09> { [ o, O ], [ kana_RA ], [ KP_6 ] };
- key <AD10> { [ p, P ], [ kana_SE ], [ KP_Subtract]};
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
- key <RTRN> { [ Return ], [ NoSymbol, NoSymbol], [ KP_Enter ] };
-
- key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ], [ KP_1 ]};
- key <AC08> { [ k, K ], [ kana_NO ], [ KP_2 ]};
- key <AC09> { [ l, L ], [ kana_RI ], [ KP_3 ]};
- key <AC10> { [ semicolon, plus], [ kana_RE ], [ KP_Add ]};
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
- key <BKSL> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
+partial alphanumeric_keys
+xkb_symbols "sun_type6" {
+
+ // include "jp"
+ // type6 based on "jp" should be provided later
+
+ include "sun_vndr/jp(sun_type6_suncompat)"
- key <LFSH> { [ Shift_L ] };
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ], [ KP_0 ]};
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ], [ KP_Decimal ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ], [ KP_Divide ]};
- key <UNDR> { [ backslash, underscore], [ kana_RO ] };
- key <RTSH> { [ Shift_R ] };
-
- key <LCTL> { [ Control_L ] };
- key <EXEC> { [ Execute ] };
- key <SPCE> { [ space ] };
- key <KANJ> { [ Kanji ] };
- key <HENK> { [ Henkan_Mode ] };
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <ESC> { [ Escape ] };
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2 ], [ Print, SunSys_Req ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock ] };
- key <PAUS> { [ R1, R1 ], [ Pause, Break ] };
- key <LEFT> { [ Left ] };
- key <RGHT> { [ Right ] };
- key <UP> { [ Up ] };
- key <DOWN> { [ Down ] };
-
- key <DELE> { [ Delete ] };
- key <INS> { [ Insert ] };
- key <PGUP> { [ Prior ] };
- key <PGDN> { [ Next ] };
- key <HOME> { [ Home ] };
- key <END> { [ End ] };
- key <HELP> { [ Help ] };
-
- // End "Editing" section, begin "Keypad"
- key <NMLK> { [ Num_Lock ] };
-// key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
-// key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
-// key <KPSU> { [ R4, R4 ], [ KP_Subtract ] };
-
-// key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
-// key <KP8> { [ Up, R8 ], [ KP_8 ] };
-// key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
-// key <KPAD> { [ KP_Add ] };
-
-// key <KP4> { [ Left, R10 ], [ KP_4 ] };
-// key <KP5> { [ R11, R11 ], [ KP_5 ] };
-// key <KP6> { [ Right, R12 ], [ KP_6 ] };
-
-// key <KP1> { [ R13, R13 ], [ KP_1, End ] };
-// key <KP2> { [ Down, R14 ], [ KP_2 ] };
-// key <KP3> { [ R15, R15 ], [ KP_3 ] };
-// key <KPEN> { [ KP_Enter ] };
-
-// key <KP0> { [ KP_Insert, KP_Insert ], [ KP_0 ] };
-// key <KPDL> { [ KP_Delete, KP_Delete ], [ KP_Decimal ] };
- // End "Keypad" section,
- // begin "four keys up on the right"
-
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
- key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
-
- // begin modifier mappings
- modifier_map Shift { Shift_R };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Alt_R };
- modifier_map Mod3 { Num_Lock };
- modifier_map Mod4 { Alt_L };
};
-// layout for a Japanese Type 6 Sun keyboard
-// Just shows differences from Type 6 US layout
-partial
-xkb_symbols "type6" {
+partial alphanumeric_keys
+xkb_symbols "sun_type7_suncompat" {
- // Alphanumeric section
- // Though Yen symbol is engraved on key AE13, JA L10N folks want backslash.
- key <AE13> { [ backslash, bar ], [ prolongedsound ] };
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
-
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ] };
- key <AD08> { [ i, I ], [ kana_NI ] };
- key <AD09> { [ o, O ], [ kana_RA ] };
- key <AD10> { [ p, P ], [ kana_SE ] };
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
-
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ] };
- key <AC08> { [ k, K ], [ kana_NO ] };
- key <AC09> { [ l, L ], [ kana_RI ] };
- key <AC10> { [ semicolon, plus ], [ kana_RE ] };
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
- key <BKSL> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
+ include "sun_vndr/jp(sun_type6_suncompat)"
+
+ key <AE10> { [ 0, asciitilde, kana_WA, kana_WO ] };
+ key <TLDE> { [ Henkan_Mode ] };
+ key <HENK> { [ Kana_Lock, Mode_switch ] };
+ key <ALGR> { [ Alt_R, Alt_R ] };
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ] };
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
- key <AB11> { [ backslash, underscore], [ kana_RO ] };
- key <UNDR> { [ backslash, underscore], [ kana_RO ] };
-
- key <EXEC> { [ Execute ] };
- key <KANJ> { [ Kanji ] };
- key <HENK> { [ Henkan_Mode ] };
- key <ALGR> { [ Kana_Lock, Mode_switch ] };
- // End alphanumeric section
};
-xkb_symbols "x86" {
- include "sun_vndr/us(pc101)"
- include "sun_vndr/jp(basic)"
- key <TLDE> { [ Henkan_Mode, Henkan_Mode ], [ Henkan_Mode ] };
+partial alphanumeric_keys
+xkb_symbols "suncompat" {
- key <AE10> { [ 0, asciitilde ], [ kana_WA, kana_WO ]};
- key <AE13> { [ backslash, bar ], [ prolongedsound ]};
+ include "sun_vndr/jp(sun_type7_suncompat)"
+};
-
- key <AC12> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ]};
+partial alphanumeric_keys
+xkb_symbols "sun_type7" {
- key <ALGR> { [ Mode_switch ] };
- key <RALT> { [ Alt_R ] };
+ include "jp"
};
-xkb_symbols "J3100" {
- include "sun_vndr/us(pc101)"
-
- // Alphanumeric section
- key <AE01> { [ 1, exclam ], [ kana_NU ] };
- key <AE02> { [ 2, quotedbl ], [ kana_FU ] };
- key <AE03> { [ 3, numbersign ], [ kana_A, kana_a ] };
- key <AE04> { [ 4, dollar ], [ kana_U, kana_u ] };
- key <AE05> { [ 5, percent ], [ kana_E, kana_e ] };
- key <AE06> { [ 6, ampersand ], [ kana_O, kana_o ] };
- key <AE07> { [ 7, apostrophe ], [ kana_YA, kana_ya ] };
- key <AE08> { [ 8, parenleft ], [ kana_YU, kana_yu ] };
- key <AE09> { [ 9, parenright ], [ kana_YO, kana_yo ] };
- key <AE10> { [ 0 ], [ kana_WA, kana_WO ] };
- key <AE11> { [ minus, equal ], [ kana_HO ] };
- key <AE12> { [ asciicircum, asciitilde], [ kana_HE ] };
- key <BKSP> { [ BackSpace ] };
-
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <AD01> { [ q, Q ], [ kana_TA ] };
- key <AD02> { [ w, W ], [ kana_TE ] };
- key <AD03> { [ e, E ], [ kana_I, kana_i ] };
- key <AD04> { [ r, R ], [ kana_SU ] };
- key <AD05> { [ t, T ], [ kana_KA ] };
- key <AD06> { [ y, Y ], [ kana_N ] };
- key <AD07> { [ u, U ], [ kana_NA ] };
- key <AD08> { [ i, I ], [ kana_NI ] };
- key <AD09> { [ o, O ], [ kana_RA ] };
- key <AD10> { [ p, P ], [ kana_SE ] };
- key <AD11> { [ at, quoteleft ], [ voicedsound ] };
- key <AD12> { [ bracketleft, braceleft ], [ semivoicedsound, kana_openingbracket ] };
- key <RTRN> { [ Return ] };
-
- key <CAPS> { [ Caps_Lock ] };
- key <AC01> { [ a, A ], [ kana_CHI ] };
- key <AC02> { [ s, S ], [ kana_TO ] };
- key <AC03> { [ d, D ], [ kana_SHI ] };
- key <AC04> { [ f, F ], [ kana_HA ] };
- key <AC05> { [ g, G ], [ kana_KI ] };
- key <AC06> { [ h, H ], [ kana_KU ] };
- key <AC07> { [ j, J ], [ kana_MA ] };
- key <AC08> { [ k, K ], [ kana_NO ] };
- key <AC09> { [ l, L ], [ kana_RI ] };
- key <AC10> { [ semicolon, plus ], [ kana_RE ] };
- key <AC11> { [ colon, asterisk ], [ kana_KE ] };
- key <TLDE> { [ bracketright, braceright ], [ kana_MU, kana_closingbracket ] };
-
- key <AB01> { [ z, Z ], [ kana_TSU, kana_tsu ] };
- key <AB02> { [ x, X ], [ kana_SA ] };
- key <AB03> { [ c, C ], [ kana_SO ] };
- key <AB04> { [ v, V ], [ kana_HI ] };
- key <AB05> { [ b, B ], [ kana_KO ] };
- key <AB06> { [ n, N ], [ kana_MI ] };
- key <AB07> { [ m, M ], [ kana_MO ] };
- key <AB08> { [ comma, less ], [ kana_NE, kana_comma ] };
- key <AB09> { [ period, greater ], [ kana_RU, kana_fullstop ] };
- key <AB10> { [ slash, question ], [ kana_ME, kana_conjunctive ]};
-// key <UNDR> { [ backslash, underscore], [ kana_RO ] };
-
- key <SPCE> { [ space ] };
-// key <KANJ> { [ Kanji ] };
-// key <HENK> { [ Henkan_Mode ] };
-// key <LNFD> { [ backslash, underscore], [ kana_RO ]};
- // End alphanumeric section
-
- // Begin "Function" section
- key <ESC> { [ Escape ] };
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <BKSL> { [ backslash, bar ], [ prolongedsound ] };
-// key <BRCR> { [ Linefeed ] };
-// key <EXEC> { [ Execute ] };
-
- key <ESC> { [ Escape, 3 ] };
-
- key <AE02> { [ 2, at ], [ kana_FU ]};
- key <AE06> { [ 6, asciicircum ], [ kana_O, kana_o ]};
- key <AE07> { [ 7, ampersand ], [ kana_YA, kana_ya ]};
- key <AE08> { [ 8, asterisk ], [ kana_YU, kana_yu ]};
- key <AE09> { [ 9, parenleft ], [ kana_YO, kana_yo ]};
- key <AE10> { [ 0, parenright ], [ kana_WA, kana_WO ]};
- key <AE11> { [ minus, underscore ], [ kana_HO ]};
- key <AE12> { [ equal, plus ], [ kana_HE ]};
-
- key <BKSL> { [ backslash, bar ], [ prolongedsound ]};
- key <AE12> { [ equal, plus ], [ kana_HE ]};
-
- key <AD11> { [ bracketleft, braceleft ], [ voicedsound ]};
- key <AD12> { [ bracketright, braceright ], [ semivoicedsound, kana_openingbracket ]};
-
- key <AC10> { [ semicolon, colon ], [ kana_RE ]};
- key <AC11> { [ quoteright, quotedbl ], [ kana_KE ]};
-
- key <TLDE> { [ quoteleft, asciitilde ], [ kana_MU, kana_closingbracket ]};
- key <LSGT> { [ backslash, bar ], [ kana_RO ]};
-// key <ALGR> { [ Mode_switch ] };
- key <RALT> { [ Henkan_Mode ] };
- key <RCTL> { [ Mode_switch ] };
+partial alphanumeric_keys
+ xkb_symbols "106" {
+ include "jp(106)"
+};
+partial alphanumeric_keys
+ xkb_symbols "common" {
+ include "jp(common)"
};
-xkb_symbols "Muhenkan_x86" {
- include "sun_vndr/jp(x86)"
+partial alphanumeric_keys
+ xkb_symbols "OADG109A" {
+ include "jp(OADG109A)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "kana86" {
+ include "jp(kana86)"
+};
- key <EXEC> { [ Muhenkan ] };
+partial alphanumeric_keys
+ xkb_symbols "kana" {
+ include "jp(kana)"
};
+partial alphanumeric_keys
+ xkb_symbols "nicola_f_bs" {
+ include "jp(nicola_f_bs)"
+};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "jp(mac)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "hztg_escape" {
+ include "jp(hztg_escape)"
+};
-partial
-xkb_symbols "type7" {
- include "sun_vndr/jp(type6)"
- key <AE10> { [ 0, asciitilde ], [ kana_WA, kana_WO ] };
- key <TLDE> { [ Henkan_Mode ] };
- key <HENK> { [ Kana_Lock, Mode_switch ] };
- key <ALGR> { [ Alt_R, Alt_R ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "jp(dvorak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/kr b/xorg-server/xkeyboard-config/symbols/sun_vndr/kr
index 62cf63d71..cc6d29e9a 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/kr
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/kr
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -26,72 +26,44 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys
+xkb_symbols "sun_type6" {
-// Korean layout for a Type 6 Sun keyboard
-partial
-xkb_symbols "type6" {
+ name[Group1]= "Korean (Sun Type 6/7)";
- // A few keys are different
- key <ALGR> { [ Hangul ] };
- key <COMP> { [ Hangul_Hanja ] };
- key <KANA> { [ Hangul ] };
- key <EISU> { [ Hangul_Hanja ] };
- key <BKSL> { [ backslash, bar, brokenbar ] };
+ include "sun_vndr/us(sunbasic)"
- include "level3(ralt_switch)"
+ // A few keys are different
+ key <ALGR> { [ Hangul ] };
+ key <COMP> { [ Hangul_Hanja ] };
+ key <KANA> { [ Hangul ] };
+ key <EISU> { [ Hangul_Hanja ] };
+ key <BKSL> { [ backslash, bar, brokenbar ] };
};
-
-// Korean layout for a Type 4 Sun keyboard
-xkb_symbols "type4" {
-
- key <BKSL> { [ backslash, bar, brokenbar ] };
-
- key <LNFD> { [ Hangul ] };
- key <RALT> { [ Linefeed ] };
- key <COMP> { [ Hangul_Hanja ] };
-
- include "level3(ralt_switch)"
-
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/kr(sun_type6)"
};
-// Korean layout for a Type 5 Sun keyboard
-xkb_symbols "type5" {
-
- // A few keys are different
- key <ALGR> { [ Hangul ] };
- key <COMP> { [ Hangul_Hanja ] };
- key <BKSL> { [ backslash, bar, brokenbar ] };
-
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "kr106" {
+ include "kr(kr106)"
+};
+partial alphanumeric_keys
+ xkb_symbols "kr104" {
+ include "kr(kr104)"
};
+partial alphanumeric_keys
+ xkb_symbols "koreankeys" {
+ include "kr(koreankeys)"
+};
-partial default alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/kr(type6)"
+partial alphanumeric_keys
+ xkb_symbols "koreankeys_raltctl" {
+ include "kr(koreankeys_raltctl)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/lt b/xorg-server/xkeyboard-config/symbols/sun_vndr/lt
index 8e8bee0f8..b333622d9 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/lt
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/lt
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,34 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Lithuania";
+xkb_symbols "sun_type6" {
+ name[Group1]="Lithuanian (Sun Type 6/7)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ quoteleft, asciitilde, notsign, brokenbar ] };
key <AE01> { [ aogonek, Aogonek, 1, exclam ] };
@@ -109,10 +87,39 @@ xkb_symbols "type6" {
key <AB10> { [ slash, question, dead_belowdot, dead_abovedot ] };
include "level3(ralt_switch)"
-
};
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/lt(type6)"
+ include "sun_vndr/lt(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "us" {
+ include "lt(us)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "std" {
+ include "lt(std)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ibm" {
+ include "lt(ibm)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "lekp" {
+ include "lt(lekp)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "lekpa" {
+ include "lt(lekpa)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "us_dvorak" {
+ include "lt(us_dvorak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/lv b/xorg-server/xkeyboard-config/symbols/sun_vndr/lv
index befcfc679..998145e65 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/lv
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/lv
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
+default alphanumeric_keys
+xkb_symbols "sun_type6" {
-partial default alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Latvia";
+ name[Group1]="Latvian (Sun Type 6/7)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ grave, asciitilde, acute, asciitilde ] };
key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
@@ -108,10 +87,79 @@ xkb_symbols "type6" {
key <AB10> { [ slash, question, slash, abovedot ] };
include "level3(ralt_switch)"
+};
+alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/lv(sun_type6)"
};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/lv(type6)"
+ xkb_symbols "apostrophe" {
+ include "lv(apostrophe)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "tilde" {
+ include "lv(tilde)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "fkey" {
+ include "lv(fkey)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "adapted" {
+ include "lv(adapted)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ergonomic" {
+ include "lv(ergonomic)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "modern" {
+ include "lv(modern)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "lv(dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ykeydvorak" {
+ include "lv(ykeydvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "minuskeydvorak" {
+ include "lv(minuskeydvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorakprogr" {
+ include "lv(dvorakprogr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ykeydvorakprogr" {
+ include "lv(ykeydvorakprogr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "minuskeydvorakprogr" {
+ include "lv(minuskeydvorakprogr)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "colemak" {
+ include "lv(colemak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "apostrophecolemak" {
+ include "lv(apostrophecolemak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/nl b/xorg-server/xkeyboard-config/symbols/sun_vndr/nl
index 3e0ba2011..8f7a69de0 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/nl
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/nl
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
default partial alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
+
+ name[Group1]="Dutch (Sun Type 6/7)";
- name[Group1]="Netherlands";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ at, section, notsign ] };
key <AE01> { [ 1, exclam, onesuperior ] };
@@ -95,54 +76,29 @@ xkb_symbols "type6" {
key <AB10> { [ minus, equal ] };
include "level3(ralt_switch)"
-
};
-
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Netherlands - Sun type 4";
-
- key <BKSL> { [ at, section, notsign ] };
- key <BRCR> { [ backslash, bar ] };
- key <AE01> { [ 1, exclam, onesuperior ] };
- key <AE02> { [ 2, quotedbl, twosuperior ] };
- key <AE03> { [ 3, numbersign, threesuperior] };
- key <AE04> { [ 4, dollar, onequarter ] };
- key <AE05> { [ 5, percent, onehalf ] };
- key <AE06> { [ 6, ampersand, threequarters] };
- key <AE07> { [ 7, underscore, sterling ] };
- key <AE08> { [ 8, parenleft, braceleft ] };
- key <AE09> { [ 9, parenright, braceright ] };
- key <AE10> { [ 0, quoteright, quoteleft ] };
- key <AE11> { [ slash, question, backslash ] };
- key <AE12> { [ degree, dead_tilde, dead_cedilla] };
- key <AD03> { [ e, E, EuroSign, Eacute ]};
- key <AD11> { [ dead_diaeresis, dead_circumflex, asciitilde, asciicircum]};
- key <AD12> { [ asterisk, bar, asciitilde ] };
- key <AC02> { [ S, S, ssharp ] };
- key <AC10> { [ plus, plusminus ] };
- key <AC11> { [ dead_acute, dead_grave ] };
- key <TLDE> { [ less, greater, asciicircum ] };
- key <LSGT> { [ bracketleft, bracketright, brokenbar ] };
- key <AB01> { [ z, Z, guillemotleft] };
- key <AB02> { [ x, X, guillemotright] };
- key <AB03> { [ c, C, cent ] };
- key <AB07> { [ m, M, Greek_mu, masculine ] };
- key <AB08> { [ comma, semicolon, cedilla, guillemotleft] };
- key <AB09> { [ period, colon, periodcentered, guillemotright ] };
- key <AB10> { [ minus, equal, hyphen ] };
- key <CAPS> { [ SunAltGraph ] };
-// key <COMP> { [ SunCompose ] };
- key <ALGR> { [ Caps_Lock ] };
+ xkb_symbols "basic" {
+ include "sun_vndr/nl(sun_type6)"
+};
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "std" {
+ include "nl(std)"
+};
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "nl(Sundeadkeys)"
};
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "nl(sundeadkeys)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/nl(type6)"
+ xkb_symbols "mac" {
+ include "nl(mac)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/no b/xorg-server/xkeyboard-config/symbols/sun_vndr/no
index bcc8c30cc..1dde45f6f 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/no
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/no
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys
+xkb_symbols "sun_type6" {
-partial alphanumeric_keys
-xkb_symbols "type6" {
+ name[Group1]="Norwegian (Sun Type 6/7)";
- name[Group1]="Norway";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ bar, section ] };
key <LSGT> { [ less, greater ] };
@@ -78,67 +59,44 @@ xkb_symbols "type6" {
include "level3(ralt_switch)"
include "kpdl(comma)"
-
};
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Norway - Sun type 4";
-
- key <BKSL> { [ bar, section ] };
- key <BRCR> { [ asciitilde, asciicircum] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, numbersign, sterling ] };
- key <AE04> { [ 4, currency, dollar ] };
- key <AE06> { [ 6, ampersand ] };
- key <AE07> { [ 7, slash, braceleft ] };
- key <AE08> { [ 8, parenleft, bracketleft ] };
- key <AE09> { [ 9, parenright, bracketright] };
- key <AE10> { [ 0, equal, braceright ] };
- key <AE11> { [ plus, question ] };
- key <AE12> { [ backslash, dead_grave, dead_acute ] };
- key <AD03> { [ e, E, EuroSign ] };
- key <AD11> { [ aring, Aring ] };
- key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde ] };
- key <LCTL> { [ Caps_Lock ] };
- key <AC10> { [ Ooblique ] };
- key <AC11> { [ ae, AE ] };
- key <TLDE> { [ quoteright, asterisk, quoteleft ] };
- key <LSGT> { [ less, greater ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
- key <CAPS> { [ Control_L ] };
-
- include "level3(ralt_switch)"
- include "kpdl(comma)"
-
+ xkb_symbols "basic" {
+ include "sun_vndr/no(sun_type6)"
};
-
partial alphanumeric_keys
-xkb_symbols "type5" {
-
- name[Group1]="Norway - Sun type 5";
+ xkb_symbols "nodeadkeys" {
+ include "no(nodeadkeys)"
+};
- key <AE05> { [ 5, percent, asciitilde ] };
- key <AE06> { [ 6, ampersand, asciicircum ] };
- key <AE07> { [ 7, slash, braceleft ] };
- key <AE08> { [ 8, parenleft, bracketright ] };
- key <AE09> { [ 9, parenright, bracketright ] };
- key <AE10> { [ 0, equal, braceright ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "no(dvorak)"
+};
- key <BKSL> { [ quoteright, asterisk, quoteleft ] };
- key <LSGT> { [ less, greater ] };
+partial alphanumeric_keys
+ xkb_symbols "smi" {
+ include "no(smi)"
+};
- include "level3(ralt_switch)"
- include "kpdl(comma)"
+partial alphanumeric_keys
+ xkb_symbols "smi_nodeadkeys" {
+ include "no(smi_nodeadkeys)"
+};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "no(mac)"
};
+partial alphanumeric_keys
+ xkb_symbols "mac_nodeadkeys" {
+ include "no(mac_nodeadkeys)"
+};
-partial default alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/no(type6)"
+partial alphanumeric_keys
+ xkb_symbols "colemak" {
+ include "no(colemak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/pl b/xorg-server/xkeyboard-config/symbols/sun_vndr/pl
index 2fdf1fe06..d5a7f5b04 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/pl
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/pl
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,32 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Polish Developers";
+ name[Group1]="Polish (Sun Type 6/7)";
+
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
@@ -91,11 +71,59 @@ xkb_symbols "type6" {
key <AB10> { [ slash, question ] };
include "level3(ralt_switch)"
+};
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/pl(sun_type6)"
};
+partial alphanumeric_keys
+ xkb_symbols "legacy" {
+ include "pl(legacy)"
+};
partial alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/pl(type6)"
+ xkb_symbols "qwertz" {
+ include "pl(qwertz)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "intl" {
+ include "pl(intl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "pl(dvorak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak_quotes" {
+ include "pl(dvorak_quotes)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvorak_altquotes" {
+ include "pl(dvorak_altquotes)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dvp" {
+ include "pl(dvp)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "szl" {
+ include "pl(szl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "csb" {
+ include "pl(csb)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ru_phonetic_dvorak" {
+ include "pl(ru_phonetic_dvorak)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/pt b/xorg-server/xkeyboard-config/symbols/sun_vndr/pt
index 9e0ec9502..b6797bb94 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/pt
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/pt
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys
+xkb_symbols "sun_type6" {
-partial alphanumeric_keys
-xkb_symbols "type6" {
+ name[Group1]= "Portuguese (Sun Type 6/7)";
- name[Group1]="Portugal";
+ include "sun_vndr/us(sun_type6)"
key <LSGT> { [ less, greater ] };
key <TLDE> { [ backslash, bar ] };
@@ -77,66 +58,54 @@ xkb_symbols "type6" {
key <AB10> { [ minus, underscore ] };
include "level3(ralt_switch)"
-
};
partial alphanumeric_keys
-xkb_symbols "type4" {
-
- name[Group1]="Portugal - Sun type 4";
-
- key <BKSL> { [ bracketleft, braceleft, guillemotleft] };
- key <BRCR> { [ bracketright, braceright, guillemotright] };
- key <AE02> { [ 2, quotedbl, at ] };
- key <AE03> { [ 3, numbersign, sterling ] };
- key <AE04> { [ 4, dollar, section ] };
- key <AE06> { [ 6, ampersand, notsign ] };
- key <AE07> { [ 7, slash ] };
- key <AE08> { [ 8, parenleft ] };
- key <AE09> { [ 9, parenright, backslash ] };
- key <AE10> { [ 0, equal, bar ] };
- key <AE11> { [ quoteright, question, quoteleft ] };
- key <AE12> { [ exclamdown, questiondown ] };
- key <AD03> { [ e, E, EuroSign ] };
- key <AD11> { [ dead_diaeresis, asterisk, plus ] };
- key <AD12> { [ dead_acute, dead_grave, asciitilde ] };
- key <LCTL> { [ Caps_Lock ] };
- key <AC10> { [ ccedilla, Ccedilla ] };
- key <AC11> { [ masculine, ordfeminine] };
- key <TLDE> { [ dead_tilde, dead_circumflex, asciicircum ] };
- key <LSGT> { [ less, greater ] };
- key <AB08> { [ comma, semicolon ] };
- key <AB09> { [ period, colon ] };
- key <AB10> { [ minus, underscore ] };
- key <CAPS> { [ Control_L ] };
-
- include "level3(ralt_switch)"
+ xkb_symbols "basic" {
+ include "sun_vndr/pt(sun_type6)"
+};
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "pt(Sundeadkeys)"
};
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "pt(sundeadkeys)"
+};
partial alphanumeric_keys
-xkb_symbols "type5" {
-
- name[Group1]="Portugal - Sun type 5";
+ xkb_symbols "nodeadkeys" {
+ include "pt(nodeadkeys)"
+};
- key <TLDE> { [ backslash, bar ] };
- key <AE05> { [ 5, percent, asciitilde ]};
- key <AE06> { [ 6, ampersand, asciicircum ]};
- key <AE07> { [ 7, slash, braceleft ]};
- key <AE08> { [ 8, parenleft, bracketleft ]};
- key <AE09> { [ 9, parenright, bracketright ]};
- key <AE10> { [ 0, equal, braceright ]};
- key <AE11> { [ quoteright, question, quoteleft ]};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "pt(mac)"
+};
- key <AD11> { [ plus, asterisk, dead_diaeresis ]};
+partial alphanumeric_keys
+ xkb_symbols "mac_sundeadkeys" {
+ include "pt(mac_sundeadkeys)"
+};
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "mac_nodeadkeys" {
+ include "pt(mac_nodeadkeys)"
+};
+partial alphanumeric_keys
+ xkb_symbols "nativo" {
+ include "pt(nativo)"
};
+partial alphanumeric_keys
+ xkb_symbols "nativo-us" {
+ include "pt(nativo-us)"
+};
-partial default alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/pt(type6)"
+partial alphanumeric_keys
+ xkb_symbols "nativo-epo" {
+ include "pt(nativo-epo)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ro b/xorg-server/xkeyboard-config/symbols/sun_vndr/ro
index 07241a3ee..1783db4bf 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ro
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ro
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Romania";
+ name[Group1]="Romanian (Sun Type 6/7)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ grave, asciitilde, grave, asciitilde ] };
key <AE01> { [ 1, exclam, dead_tilde ] };
@@ -108,10 +87,39 @@ xkb_symbols "type6" {
key <AB10> { [ slash, question, slash, question ] };
include "level3(ralt_switch)"
-
};
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ro(type6)"
+ include "sun_vndr/ro(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "cedilla" {
+ include "ro(cedilla)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "std" {
+ include "ro(std)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "std_cedilla" {
+ include "ro(std_cedilla)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "winkeys" {
+ include "ro(winkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "crh_dobruja" {
+ include "ro(crh_dobruja)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ergonomic" {
+ include "ro(ergonomic)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ru b/xorg-server/xkeyboard-config/symbols/sun_vndr/ru
index cfa27d08a..1ea594754 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ru
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ru
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,36 +27,16 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-partial alphanumeric_keys
-xkb_symbols "type6" {
+partial default alphanumeric_keys
+xkb_symbols "sun_type6" {
- name[Group1]= "Russia";
+ name[Group1]= "Russian (Sun Type 6/7)";
- key.type[group1]="FOUR_LEVEL";
+ include "sun_vndr/us(sun_type6)"
+ key.type[group1]="FOUR_LEVEL";
- key <AE01> { [ 1, exclam ] };
+ key <AE01> { [ 1, exclam, 1, exclam ] };
key <AE02> { [ 2, quotedbl, 2, at ] };
key <AE03> { [ 3, numerosign, 3, numbersign ] };
key <AE04> { [ 4, percent, 4, dollar ] };
@@ -65,7 +45,7 @@ xkb_symbols "type6" {
key <AE08> { [ 8, semicolon, 8, asterisk ] };
key <BKSL> { [ slash, question, backslash, bar ] };
key <AB10> { [ ediaeresis, Ediaeresis, slash, question ] };
- key <LSGT> { [ backslash, bar ] };
+ key <LSGT> { [ backslash, bar, backslash, bar ] };
key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] };
key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, w, W ] };
@@ -101,11 +81,124 @@ xkb_symbols "type6" {
key <AB09> { [ Cyrillic_yu, Cyrillic_YU, period, greater ] };
include "level3(ralt_switch)"
+};
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/ru(sun_type6)"
};
+partial alphanumeric_keys
+ xkb_symbols "winkeys" {
+ include "ru(winkeys)"
+};
-partial default alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/ru(type6)"
+partial alphanumeric_keys
+ xkb_symbols "common" {
+ include "ru(common)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "legacy" {
+ include "ru(legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "ru(olpc)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "typewriter" {
+ include "ru(typewriter)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "typewriter-legacy" {
+ include "ru(typewriter-legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "phonetic" {
+ include "ru(phonetic)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "phonetic_winkeys" {
+ include "ru(phonetic_winkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "tt" {
+ include "ru(tt)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "os_legacy" {
+ include "ru(os_legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "os_winkeys" {
+ include "ru(os_winkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "cv" {
+ include "ru(cv)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "udm" {
+ include "ru(udm)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "cv_latin" {
+ include "ru(cv_latin)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "kom" {
+ include "ru(kom)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sah" {
+ include "ru(sah)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "xal" {
+ include "ru(xal)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "dos" {
+ include "ru(dos)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bak" {
+ include "ru(bak)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "srp" {
+ include "ru(srp)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "chm" {
+ include "ru(chm)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "chu" {
+ include "ru(chu)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ruu" {
+ include "ru(ruu)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/se b/xorg-server/xkeyboard-config/symbols/sun_vndr/se
index d27001466..506d9c377 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/se
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/se
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,31 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+partial default alphanumeric_keys
+xkb_symbols "sun_type6" {
-partial alphanumeric_keys
-xkb_symbols "type6" {
+ name[Group1]="Swedish (Sun Type 6/7)";
- name[Group1]="Sweden";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ section, onehalf ] };
key <LSGT> { [ less, greater, bar ] };
@@ -77,203 +58,54 @@ xkb_symbols "type6" {
include "level3(ralt_switch)"
include "kpdl(comma)"
-
};
-// Swedish layout for a Type 5/5c Sun keyboard
-xkb_symbols "type5" {
- include "sun_vndr/us(type5)+se(basic)"
-
- // Begin alphanumeric section
- // These two are not supposed to be dead.
- // A few others supposedly ARE dead, but don't care for now.
- key <AC12> { [ apostrophe, asterisk ], [ grave ] };
- key <AD12> { [ ], [ asciitilde ] };
-
- key <RTSH> { [ Shift_R ] };
-
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ F11 ], [ SunF36] };
- key <FK12> { [ F12 ], [ SunF37] };
- key <STOP> { [ Cancel ], [ F11 ] };
- key <AGAI> { [ Redo ], [ F12 ] };
- key <PROP> { [ SunProps ], [ F13 ] };
- key <UNDO> { [ Undo ], [ F14 ] };
- key <FRNT> { [ SunFront ], [ F15 ] };
- key <COPY> { [ SunCopy ], [ F16 ] };
- key <OPEN> { [ SunOpen ], [ F17 ] };
- key <PAST> { [ SunPaste ], [ F18 ] };
- key <FIND> { [ Find ], [ F19 ] };
- key <CUT> { [ SunCut ], [ F20 ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ Print ], [ Sys_Req, SunSys_Req ] };
- key <SCLK> { [ Scroll_Lock ] };
- key <PAUS> { [ Pause ], [ Break ] };
- key <LEFT> { [ Left ] };
- key <RGHT> { [ Right ] };
- key <UP> { [ Up ] };
- key <DOWN> { [ Down ] };
-
- key <DELE> { [ Delete ] };
- key <INS> { [ Insert ] };
- key <PGUP> { [ Prior ] };
- key <PGDN> { [ Next ] };
- key <HOME> { [ Home ] };
- key <END> { [ End ] };
- key <HELP> { [ Help ] };
- // End "Editing" section
-
- // Begin "Keypad" section
- key <NMLK> { [ Num_Lock ] };
- key <KPDV> { [ KP_Divide ], [ F25 ] };
- key <KPMU> { [ KP_Multiply ], [ F26 ] };
- key <KPSU> { [ KP_Subtract ] };
-
- key <KP7> { [ KP_Home, KP_7 ], [ F27 ] };
- key <KP8> { [ KP_Up, KP_8 ], [ F28 ] };
- key <KP9> { [ KP_Prior, KP_9 ], [ F29 ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ KP_Left, KP_4 ], [ F30 ] };
- key <KP5> { [ KP_Begin, KP_5 ], [ F31 ] };
- key <KP6> { [ KP_Right, KP_6 ], [ F32 ] };
-
- key <KP1> { [ KP_End, KP_1 ], [ F33 ] };
- key <KP2> { [ KP_Down, KP_2 ], [ F34 ] };
- key <KP3> { [ KP_Next, KP_3 ], [ F35 ] };
- key <KPEN> { [ KP_Enter ] };
-
- key <KP0> { [ KP_Insert, KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Decimal ] };
- // End "Keypad" section,
-
- // Begin "four keys up on the right"
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume,SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume,SunVideoRaiseBrightness ] };
- key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
- // End "four keys up on the right"
-
- // Begin modifier mappings
- modifier_map Shift { Shift_R };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Num_Lock };
- modifier_map Mod3 { Mode_switch };
- modifier_map Mod4 { Alt_L };
- // End modifier mappings
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/se(sun_type6)"
};
-// Swedish layout for a Type 4 Sun keyboard
-xkb_symbols "type4" {
- include "sun_vndr/us(type4basic)+se(basic)"
-
- // Begin alphanumeric section
- // These two are not supposed to be dead.
- // A few others supposedly ARE dead, but don't care for now.
- key <AC12> { [ apostrophe, asterisk ], [ grave ] };
- key <AD12> { [ ], [ asciitilde ] };
-
- key <AF14> { [ asciitilde, asciicircum ] };
-
- key <RTSH> { [ Shift_R ] };
-
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ F11 ], [ SunF36] };
- key <FK12> { [ F12 ], [ SunF37] };
- key <STOP> { [ Cancel ], [ F11 ] };
- key <AGAI> { [ Redo ], [ F12 ] };
- key <PROP> { [ SunProps ], [ F13 ] };
- key <UNDO> { [ Undo ], [ F14 ] };
- key <FRNT> { [ SunFront ], [ F15 ] };
- key <COPY> { [ SunCopy ], [ F16 ] };
- key <OPEN> { [ SunOpen ], [ F17 ] };
- key <PAST> { [ SunPaste ], [ F18 ] };
- key <FIND> { [ Find ], [ F19 ] };
- key <CUT> { [ SunCut ], [ F20 ] };
- // End "Function" section
+partial alphanumeric_keys
+ xkb_symbols "se" {
+ include "se(se)"
+};
- // Begin "Editing" section
- key <LNFD> { [ Linefeed ] };
- key <DELE> { [ Delete ] };
- key <PRSC> { [ Print ], [ Sys_Req, SunSys_Req ] };
- key <SCLK> { [ Scroll_Lock ] };
- key <PAUS> { [ Pause ], [ Break ] };
- key <HELP> { [ Help ] };
- // End "Editing" section
-
- // Begin "Keypad" section
- key <NMLK> { [ Num_Lock ] };
- key <KPEQ> { [ KP_Equal ] };
- key <KPDV> { [ KP_Divide ], [ F25 ] };
- key <KPMU> { [ KP_Multiply ], [ F26 ] };
- key <KPSU> { [ KP_Subtract ] };
+partial alphanumeric_keys
+ xkb_symbols "nodeadkeys" {
+ include "se(nodeadkeys)"
+};
- key <KP7> { [ KP_Home, KP_7 ], [ F27 ] };
- key <KP8> { [ KP_Up, KP_8 ], [ F28 ] };
- key <KP9> { [ KP_Prior, KP_9 ], [ F29 ] };
- key <KPAD> { [ KP_Add ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "se(dvorak)"
+};
- key <KP4> { [ KP_Left, KP_4 ], [ F30 ] };
- key <KP5> { [ KP_Begin, KP_5 ], [ F31 ] };
- key <KP6> { [ KP_Right, KP_6 ], [ F32 ] };
+partial alphanumeric_keys
+ xkb_symbols "rus" {
+ include "se(rus)"
+};
- key <KP1> { [ KP_End, KP_1 ], [ F33 ] };
- key <KP2> { [ KP_Down, KP_2 ], [ F34 ] };
- key <KP3> { [ KP_Next, KP_3 ], [ F35 ] };
- key <KPEN> { [ KP_Enter ] };
+partial alphanumeric_keys
+ xkb_symbols "rus_nodeadkeys" {
+ include "se(rus_nodeadkeys)"
+};
- key <KP0> { [ KP_Insert, KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Decimal ] };
- // End "Keypad" section,
+partial alphanumeric_keys
+ xkb_symbols "smi" {
+ include "se(smi)"
+};
- // Begin modifier mappings
- modifier_map Shift { Shift_R };
- modifier_map Mod1 { Alt_L };
- modifier_map Mod2 { Num_Lock };
- modifier_map Mod3 { Mode_switch };
- modifier_map Mod4 { Meta_L };
- modifier_map Mod5 { Meta_R };
- // End modifier mappings
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "se(mac)"
};
+partial alphanumeric_keys
+ xkb_symbols "svdvorak" {
+ include "se(svdvorak)"
+};
-partial default alphanumeric_keys
- xkb_symbols "basic" {
- include "sun_vndr/se(type6)"
+partial alphanumeric_keys
+ xkb_symbols "swl" {
+ include "se(swl)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/sk b/xorg-server/xkeyboard-config/symbols/sun_vndr/sk
index 9c909763f..e3507f0c4 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/sk
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/sk
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Slovakia";
+ name[Group1]="Slovak (Sun Type 6/7)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ semicolon, dead_abovering, quoteleft, asciitilde ] };
key <AE01> { [ plus, 1, exclam, asciitilde ] };
@@ -105,5 +84,20 @@ xkb_symbols "type6" {
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/sk(type6)"
+ include "sun_vndr/sk(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "bksl" {
+ include "sk(bksl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty" {
+ include "sk(qwerty)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "qwerty_bksl" {
+ include "sk(qwerty_bksl)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/solaris b/xorg-server/xkeyboard-config/symbols/sun_vndr/solaris
index c435744ee..d8289506e 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/solaris
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/solaris
@@ -1,6 +1,5 @@
-//-------------------------------------------------------------------------
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,187 +26,87 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-//-------------------------------------------------------------------------
-//
-
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-// Default map provides backwards compatibility with Sun keyboards from
-// long ago and the key mappings still used in Solaris Xsun today
-
-partial default
+partial
xkb_symbols "defaults_common" {
- // Left side keys were labeled L1-L10 on Sun Type 2 & Type 3 keyboards
- // and the names have stuck (you can spot a longtime Sun admin when you
- // hear them say to hit "L1-A" to enter the OpenBoot PROM)
- // These names get mapped to the keysyms F11-F20
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
-
- // And on the right side, the function keys were labeled R1-R15,
- // which get mapped to the keysyms F21-F35
- // This includes the keys that became the numeric keypad
- key <PAUS> { [ R1, R1 ], [ Pause ] };
- key <PRSC> { [ R2, R2 ], [ Print ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock, Break ] };
-
- key <KPEQ> { [ KP_Equal ], [ R4, KP_Equal ] };
- key <KPDV> { [ KP_Divide ], [ R5, KP_Divide ] };
- key <KPMU> { [ KP_Multiply ], [ R6, KP_Multiply ] };
-
- key <KP7> { [ KP_Home, KP_7, R7 ], [ R7, KP_7, Home ] };
- key <KP8> { [ KP_Up, KP_8, R8 ], [ R8, KP_8, Up ] };
- key <KP9> { [ KP_Prior, KP_9, R9 ], [ R9, KP_9, Prior ] };
-
- key <KP4> { [ KP_Left, KP_4, R10 ], [ R10, KP_4, Left ] };
- key <KP5> { [ KP_Begin, KP_5, R11 ], [ R11, KP_5 ] };
- key <KP6> { [ KP_Right, KP_6, R12 ], [ R12, KP_6, Right ] };
-
- key <KP1> { [ KP_End, KP_1, R13 ], [ R13, KP_1, End ] };
- key <KP2> { [ KP_Down, KP_2, R14 ], [ R14, KP_2, Down ] };
- key <KP3> { [ KP_Next, KP_3, R15 ], [ R15, KP_3, Next ] };
-
- // F11 & F12 are mapped to SunF36 and SunF37 since they were added
- // after F11-F35 were already assigned on Sun keyboards
- key <FK11> { [ SunF36 ], [ F11 ] };
- key <FK12> { [ SunF37 ], [ F12 ] };
-
- // These were added to the keyboard much later and simply got mapped
- // to their logical names
- key <HELP> { [ Help ] };
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume,SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume,SunVideoRaiseBrightness ] };
- key <POWR> { [ XF86Sleep, XF86Hibernate ] };
-
-// key <LALT> { [ Alt_L ] };
-// key <LMTA> { [ Meta_L ] };
-// key <RMTA> { [ Meta_R ] };
-// key <COMP> { [ Multi_key ] };
+ key <MUTE> { [ XF86AudioMute ] };
+ key <VOL-> { [ XF86AudioLowerVolume ] };
+ key <VOL+> { [ XF86AudioRaiseVolume ] };
+ key <POWR> { [ XF86PowerOff ] };
+ key <STOP> { [ Cancel ] };
+ key <AGAI> { [ Redo ] };
+ key <PROP> { [ SunProps ] };
+ key <UNDO> { [ Undo ] };
+ key <FRNT> { [ SunFront ] };
+ key <COPY> { [ XF86Copy ] };
+ key <OPEN> { [ SunOpen ] };
+ key <PAST> { [ XF86Paste ] };
+ key <FIND> { [ Find ] };
+ key <CUT> { [ XF86Cut ] };
+ key <HELP> { [ Help ] };
+ key <LNFD> { [ Linefeed ] };
+
+ key <LALT> { [ Alt_L, Alt_L ] };
+ key <LWIN> { [ Meta_L ] };
+ key <RWIN> { [ Meta_R ] };
+
+// The following is needed for virtual hotkeys
+
+ key <I150> { [ XF86Sleep ] };
+ key <I160> { [ XF86ScreenSaver ] };
+ key <I235> { [ XF86Display ] };
+
+// Common Sun Modifiers
+
+ modifier_map Shift { Shift_R, Shift_L };
+ modifier_map Mod2 { Num_Lock };
+ modifier_map Mod4 { Meta_L, Meta_R };
+
};
partial default
xkb_symbols "defaults" {
+
include "sun_vndr/solaris(defaults_common)"
-// key <RALT> { [ Mode_switch ] };
-// key <ALGR> { [ Mode_switch ] };
-
- // begin modifier mappings
-// modifier_map Shift { Shift_R, Shift_L };
-// modifier_map Mod1 { Alt_L };
-// modifier_map Mod2 { Num_Lock };
-// modifier_map Mod3 { Alt_R, Mode_switch };
-// modifier_map Mod4 { Meta_L, Meta_R };
+
+ modifier_map Mod1 { Alt_L };
+
};
-partial default
+partial
xkb_symbols "defaults_type7jp" {
+
include "sun_vndr/solaris(defaults_common)"
- // begin modifier mappings
- modifier_map Shift { Shift_R, Shift_L };
- modifier_map Mod1 { Alt_L , Alt_R};
- modifier_map Mod2 { Num_Lock };
- modifier_map Mod3 { Mode_switch };
- modifier_map Mod4 { Meta_L, Meta_R };
-};
-// Map the keys to the actual key names instead of the ancient Sun function
-// keys
-partial
-xkb_symbols "keynames" {
- key <FK11> { [ F11 ], [ SunF36 ] };
- key <FK12> { [ F12 ], [ SunF37 ] };
-
- key <STOP> { [ Cancel ], [ F11 ] };
- key <AGAI> { [ Redo ], [ F12 ] };
- key <PROP> { [ SunProps ], [ F13 ] };
- key <UNDO> { [ Undo ], [ F14 ] };
- key <FRNT> { [ SunFront ], [ F15 ] };
- key <COPY> { [ SunCopy ], [ F16 ] };
- key <OPEN> { [ SunOpen ], [ F17 ] };
- key <PAST> { [ SunPaste ], [ F18 ] };
- key <FIND> { [ Find ], [ F19 ] };
- key <CUT> { [ SunCut ], [ F20 ] };
-
- key <HELP> { [ Help ] };
-
- key <PAUS> { [ Pause ] };
- key <PRSC> { [ Print ] };
- key <SCLK> { [ Scroll_Lock, Break ] };
-
- key <KP7> { [ KP_Home, KP_7 ] };
- key <KP8> { [ KP_Up, KP_8 ] };
- key <KP9> { [ KP_Prior, KP_9 ] };
-
- key <KP4> { [ KP_Left, KP_4 ] };
- key <KP5> { [ KP_Begin, KP_5 ] };
- key <KP6> { [ KP_Right, KP_6 ] };
-
- key <KP1> { [ KP_End, KP_1 ] };
- key <KP2> { [ KP_Down, KP_2 ] };
- key <KP3> { [ KP_Next, KP_3 ] };
-
- key <KPEN> { [ KP_Enter ] };
- key <KPEQ> { [ KP_Equal ] };
-
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
- key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
-
- key <LALT> { [ Alt_L ] };
- key <RALT> { [ Mode_switch ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
+ modifier_map Mod1 { Alt_L, Alt_R };
};
-// Map the keys to the XFree86 key names instead of the Sun key names
partial
-xkb_symbols "xf86keynames" {
- key <STOP> { [ XF86Stop ], [ F11 ] };
- key <AGAI> { [ Redo ], [ F12 ] };
- key <PROP> { [ SunProps ], [ F13 ] };
- key <UNDO> { [ Undo ], [ F14 ] };
- key <FRNT> { [ SunFront ], [ F15 ] };
- key <COPY> { [ XF86Copy ], [ F16 ] };
- key <OPEN> { [ XF86Open ], [ F17 ] };
- key <PAST> { [ XF86Paste ], [ F18 ] };
- key <FIND> { [ Find ], [ F19 ] };
- key <CUT> { [ XF86Cut ], [ F20 ] };
-
- key <MUTE> { [ XF86AudioMute, SunVideoDegauss ] };
- key <VOL-> { [ XF86AudioLowerVolume,SunVideoLowerBrightness ] };
- key <VOL+> { [ XF86AudioRaiseVolume,SunVideoRaiseBrightness ] };
- key <POWR> { [ XF86Sleep, XF86PowerDown ] };
+xkb_symbols "sun_compat" {
+
+ key <STOP> { [ L1, L1, SunStop ] };
+ key <AGAI> { [ L2, L2, SunAgain ] };
+ key <PROP> { [ L3, L3, SunProps ] };
+ key <UNDO> { [ L4, L4, SunUndo ] };
+ key <FRNT> { [ L5, L5, SunFront ] };
+ key <COPY> { [ L6, L6, SunCopy ] };
+ key <OPEN> { [ L7, L7, SunOpen ] };
+ key <PAST> { [ L8, L8, SunPaste ] };
+ key <FIND> { [ L9, L9, SunFind ] };
+ key <CUT> { [ L10, L10, SunCut ] };
+
+// F11 & F12 are mapped to SunF36 and SunF37 since they were added
+// after F11-F35 were already assigned on Sun keyboards
+ key <FK11> { [ SunF36 ], [ F11 ] };
+ key <FK12> { [ SunF37 ], [ F12 ] };
+
+// These were added to the keyboard much later and simply got mapped
+// to their logical names
+ key <HELP> { [ Help ] };
+ key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
+ key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
+ key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
+ key <POWR> { [ XF86Sleep, XF86Hibernate ] };
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/tr b/xorg-server/xkeyboard-config/symbols/sun_vndr/tr
index 18ff4f0b1..b926349ab 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/tr
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/tr
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,32 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+default partial alphanumeric_keys
+xkb_symbols "sun_type6" {
+ name[Group1]="Turkish (Sun Type 6)";
-partial alphanumeric_keys
-xkb_symbols "type6" {
-
- name[Group1]="Turkey - (Q)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ quotedbl, eacute ] };
key <AE01> { [ 1, exclam ] };
@@ -83,10 +63,69 @@ xkb_symbols "type6" {
key <AB10> { [ period, colon ] };
include "level3(ralt_switch)"
-
};
-partial default alphanumeric_keys
+partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/tr(type6)"
+ include "sun_vndr/tr(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "f" {
+ include "tr(f)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "alt" {
+ include "tr(alt)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "Sundeadkeys" {
+ include "tr(Sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "sundeadkeys" {
+ include "tr(sundeadkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ku" {
+ include "tr(ku)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ku_f" {
+ include "tr(ku_f)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "ku_alt" {
+ include "tr(ku_alt)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "intl" {
+ include "tr(intl)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "tr(olpc)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "crh" {
+ include "tr(crh)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "crh_f" {
+ include "tr(crh_f)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "crh_alt" {
+ include "tr(crh_alt)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/tuv b/xorg-server/xkeyboard-config/symbols/sun_vndr/tuv
deleted file mode 100644
index f098f9f27..000000000
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/tuv
+++ /dev/null
@@ -1,261 +0,0 @@
-//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, and/or sell copies of the Software, and to permit persons
-// to whom the Software is furnished to do so, provided that the above
-// copyright notice(s) and this permission notice appear in all copies of
-// the Software and that both the above copyright notice(s) and this
-// permission notice appear in supporting documentation.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-//
-// Except as contained in this notice, the name of a copyright holder
-// shall not be used in advertising or otherwise to promote the sale, use
-// or other dealings in this Software without prior written authorization
-// of the copyright holder.
-//
-//
-//Copyright 1996, 1998 The Open Group
-//
-//All Rights Reserved.
-//
-//The above copyright notice and this permission notice shall be
-//included in all copies or substantial portions of the Software.
-//
-//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-//OTHER DEALINGS IN THE SOFTWARE.
-//
-//Except as contained in this notice, the name of The Open Group shall
-//not be used in advertising or otherwise to promote the sale, use or
-//other dealings in this Software without prior written authorization
-//from The Open Group.
-//
-// US/ASCII layout for a Type 4 Sun keyboard
-
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
-xkb_symbols "type4basic" {
- include "us(basic)"
-
- key <RTSH> { [ Shift_R ] };
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <LNFD> { [ Linefeed ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2 ], [ Print ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock, Break ] };
- key <PAUS> { [ R1, R1 ], [ Pause ] };
- key <DELE> { [ Delete ] };
- key <HELP> { [ Help ] };
-
- // End "Editing" section, begin "Keypad"
- key <NMLK> { [ Num_Lock ] };
- key <KPEQ> { [ R4, R4 ], [ KP_Equal ] };
- key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
- key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
- key <KPSU> { [ KP_Subtract ] };
-
- key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
- key <KP8> { [ Up, R8 ], [ KP_8 ] };
-// key <KP8> { [ R8, R8 ], [ KP_8 ] };
- key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ Left, R10 ], [ KP_4 ] };
- key <KP5> { [ R11, R11 ], [ KP_5 ] };
- key <KP6> { [ Right, R12 ], [ KP_6 ] };
-
- key <KP1> { [ R13, R13 ], [ KP_1, End ] };
- key <KP2> { [ Down, R14 ], [ KP_2 ] };
- key <KP3> { [ R15, R15 ], [ KP_3, Next ] };
- key <KPEN> { [ KP_Enter ] };
- key <KP0> { [ KP_Insert, KP_Insert], [ KP_0 ] };
- key <KPDL> { [ Delete, Delete ], [ KP_Decimal ] };
- // End "Keypad" section
-
-
- // begin modifier mappings
- modifier_map Shift { Shift_R, Shift_L };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Num_Lock };
- modifier_map Mod3 { Mode_switch };
- modifier_map Mod4 { Alt_L };
-};
-
-xkb_symbols "type4" {
- include "sun_vndr/us(type4basic)"
-
- // A few alphanumeric keys are different
- key <AE04> { [ 4, dollar ], [ EuroSign ] };
- key <AE05> { [ 5, percent ], [ EuroSign ] };
- key <AD03> { [ e, E ], [ EuroSign ] };
-};
-
-// US/ASCII layout for a Type 5 Sun keyboard
-xkb_symbols "type5basic" {
- include "us(basic)"
-
- key <RTSH> { [ Shift_R ] };
- key <LALT> { [ Alt_L ] };
- key <ALGR> { [ Mode_switch ] };
- key <LMTA> { [ Meta_L ] };
- key <RMTA> { [ Meta_R ] };
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- // Begin "Function" section
- key <FK01> { [ F1 ] };
- key <FK02> { [ F2 ] };
- key <FK03> { [ F3 ] };
- key <FK04> { [ F4 ] };
- key <FK05> { [ F5 ] };
- key <FK06> { [ F6 ] };
- key <FK07> { [ F7 ] };
- key <FK08> { [ F8 ] };
- key <FK09> { [ F9 ] };
- key <FK10> { [ F10 ] };
- key <FK11> { [ SunF36 ] };
- key <FK12> { [ SunF37 ] };
- key <STOP> { [ L1, L1 ], [ SunStop ] };
- key <AGAI> { [ L2, L2 ], [ SunAgain ] };
- key <PROP> { [ L3, L3 ], [ SunProps ] };
- key <UNDO> { [ L4, L4 ], [ SunUndo ] };
- key <FRNT> { [ L5, L5 ], [ SunFront ] };
- key <COPY> { [ L6, L6 ], [ SunCopy ] };
- key <OPEN> { [ L7, L7 ], [ SunOpen ] };
- key <PAST> { [ L8, L8 ], [ SunPaste ] };
- key <FIND> { [ L9, L9 ], [ SunFind ] };
- key <CUT> { [ L10, L10 ], [ SunCut ] };
- // End "Function" section
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2 ], [ Print, SunSys_Req ] };
- key <SCLK> { [ R3, R3 ], [ Scroll_Lock ] };
- key <PAUS> { [ R1, R1 ], [ Pause, Break ] };
- key <LEFT> { [ Left ] };
- key <RGHT> { [ Right ] };
- key <UP> { [ Up ] };
- key <DOWN> { [ Down ] };
-
- key <DELE> { [ Delete ] };
- key <INS> { [ Insert ] };
- key <PGUP> { [ Prior ] };
- key <PGDN> { [ Next ] };
- key <HOME> { [ Home ] };
- key <END> { [ End ] };
- key <HELP> { [ Help ] };
-
- // End "Editing" section, begin "Keypad"
- key <NMLK> { [ Num_Lock ] };
- key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
- key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
- key <KPSU> { [ R4, R4 ], [ KP_Subtract ] };
-
- key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
- key <KP8> { [ Up, R8 ], [ KP_8 ] };
- key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ Left, R10 ], [ KP_4 ] };
- key <KP5> { [ R11, R11 ], [ KP_5 ] };
- key <KP6> { [ Right, R12 ], [ KP_6 ] };
-
- key <KP1> { [ R13, R13 ], [ KP_1, End ] };
- key <KP2> { [ Down, R14 ], [ KP_2 ] };
- key <KP3> { [ R15, R15 ], [ KP_3 ] };
- key <KPEN> { [ KP_Enter ] };
-
- key <KP0> { [ KP_Insert, KP_Insert ], [ KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Delete ], [ KP_Decimal ] };
- // End "Keypad" section,
- // begin "four keys up on the right"
-
- key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
- key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
- key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
-
- // begin modifier mappings
- modifier_map Shift { Shift_R };
- modifier_map Mod1 { Meta_L, Meta_R };
- modifier_map Mod2 { Num_Lock };
- modifier_map Mod3 { Alt_R };
- modifier_map Mod4 { Alt_L };
-};
-
-xkb_symbols "type5" {
- include "sun_vndr/us(type5basic)"
-
- // A few alphanumeric keys are different
- key <AE04> { [ 4, dollar ], [ EuroSign ] };
- key <AE05> { [ 5, percent ], [ EuroSign ] };
- key <AD03> { [ e, E ], [ EuroSign ] };
- key <BKSL> { [ backslash, bar ], [ brokenbar ] };
-};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/tw b/xorg-server/xkeyboard-config/symbols/sun_vndr/tw
index d2d3952e4..2296ad16a 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/tw
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/tw
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,52 +27,34 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
+default partial alphanumeric_keys
+xkb_symbols "sun_type6" {
+
+ name[Group1]= "Taiwanese (Sun Type 6/7)";
+
+ include "sun_vndr/us(sunbasic)"
-// Taiwanese layout for a Type 6 Sun keyboard
-partial
-xkb_symbols "type6" {
- // A few keys are different from US layout - only those are shown here
key <ALGR> { [ Henkan_Mode ] };
key <BKSL> { [ backslash, bar, brokenbar ] };
};
-
-// Taiwanese layout for a Type 4 Sun keyboard
-
-xkb_symbols "type4" {
-
- key <BKSL> { [ backslash, bar, brokenbar ] };
-
- key <COMP> { [ Henkan_Mode ] };
-
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/tw(sun_type6)"
};
-// Taiwanese layout for a Type 5 Sun keyboard
-xkb_symbols "type5" {
+partial alphanumeric_keys
+ xkb_symbols "tw" {
+ include "tw(tw)"
+};
- // A few keys are different
- key <ALGR> { [ Henkan_Mode ] };
- key <BKSL> { [ backslash, bar, brokenbar ] };
+partial alphanumeric_keys
+ xkb_symbols "indigenous" {
+ include "tw(indigenous)"
+};
+partial alphanumeric_keys
+ xkb_symbols "saisiyat" {
+ include "tw(saisiyat)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/ua b/xorg-server/xkeyboard-config/symbols/sun_vndr/ua
index 98d39ecde..b53b0d874 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/ua
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/ua
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -27,33 +27,12 @@
// of the copyright holder.
//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-
partial default alphanumeric_keys
-xkb_symbols "type6" {
+xkb_symbols "sun_type6" {
- name[Group1]="Ukraine";
+ name[Group1]="Ukrainian (Sun Type 6)";
+ include "sun_vndr/us(sun_type6)"
key <TLDE> { [ grave, asciitilde, apostrophe, asciitilde ] };
key <AE01> { [ 1, exclam, 1, exclam ] };
@@ -108,10 +87,49 @@ xkb_symbols "type6" {
key <AB10> { [ slash, question, slash, question ] };
include "level3(ralt_switch)"
-
};
partial alphanumeric_keys
xkb_symbols "basic" {
- include "sun_vndr/ua(type6)"
+ include "sun_vndr/ua(sun_type6)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "unicode" {
+ include "ua(unicode)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "legacy" {
+ include "ua(legacy)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "winkeys" {
+ include "ua(winkeys)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "typewriter" {
+ include "ua(typewriter)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "phonetic" {
+ include "ua(phonetic)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "rstu" {
+ include "ua(rstu)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "rstu_ru" {
+ include "ua(rstu_ru)"
+};
+
+partial alphanumeric_keys
+ xkb_symbols "homophonic" {
+ include "ua(homophonic)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/us b/xorg-server/xkeyboard-config/symbols/sun_vndr/us
index 6bc09a2cd..056936a01 100644
--- a/xorg-server/xkeyboard-config/symbols/sun_vndr/us
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/us
@@ -1,5 +1,5 @@
//
-// Copyright 2010 Sun Microsystems, Inc. All rights reserved.
+// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
@@ -26,375 +26,180 @@
// or other dealings in this Software without prior written authorization
// of the copyright holder.
//
-//
-//Copyright 1996, 1998 The Open Group
-//
-//All Rights Reserved.
-//
-//The above copyright notice and this permission notice shall be
-//included in all copies or substantial portions of the Software.
-//
-//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-//OTHER DEALINGS IN THE SOFTWARE.
-//
-//Except as contained in this notice, the name of The Open Group shall
-//not be used in advertising or otherwise to promote the sale, use or
-//other dealings in this Software without prior written authorization
-//from The Open Group.
-//
-//
-// CDDL HEADER START
-//
-// The contents of this file are subject to the terms of the
-// Common Development and Distribution License (the "License").
-// You may not use this file except in compliance with the License.
-//
-// You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
-// or http://www.opensolaris.org/os/licensing.
-// See the License for the specific language governing permissions
-// and limitations under the License.
-//
-// When distributing Covered Code, include this CDDL HEADER in each
-// file and include the License file at src/OPENSOLARIS.LICENSE.
-// If applicable, add the following below this CDDL HEADER, with the
-// fields enclosed by brackets "[]" replaced with your own identifying
-// information: Portions Copyright [yyyy] [name of copyright owner]
-//
-// CDDL HEADER END
-//
-
-// Symbols shared by all Sun Keyboard layouts
+partial default alphanumeric_keys
xkb_symbols "sunbasic" {
- include "srvr_ctrl(xfree86)"
-
- // Needed for left function keys and volume keys
- // Need to include this before us(basic) otherwise tilde is mapped to
- // a jp key
- include "inet(evdev)"
include "us(basic)"
- include "srvr_ctrl(fkey2vt)"
- include "pc(editing)"
- include "keypad(x11)"
-
- key <ESC> { [ Escape ] };
-
- // the extra key on most European keyboards
- key <LSGT> { [ less, greater, bar, brokenbar ] };
-
- // these keys are common to almost all layouts
- key <BKSL> { [ backslash, bar ] };
- key <SPCE> { [ space ] };
-
- key <BKSP> { [ BackSpace ] };
- key <TAB> { [ Tab, ISO_Left_Tab ] };
- key <RTRN> { [ Return ] };
-
- key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
-
- key <COMP> { [ Multi_key ] };
- // End alphanumeric section
-
- key <LFSH> { [ Shift_L ] };
- key <LCTL> { [ Control_L ] };
-
- key <RTSH> { [ Shift_R ] };
- key <RCTL> { [ Control_R ] };
-
-
- // begin modifier mappings
- modifier_map Shift { Shift_L, Shift_R };
- modifier_map Lock { Caps_Lock };
- modifier_map Control{ Control_L, Control_R };
- modifier_map Mod2 { Num_Lock };
-
- // Fake keys for virtual<->real modifiers mapping
- key <LVL3> { [ ISO_Level3_Shift ] };
- key <MDSW> { [ Mode_switch ] };
- modifier_map Mod5 { <LVL3>, <MDSW> };
-
- key <ALT> { [ NoSymbol, Alt_L ] };
- key <LALT> { [ Alt_L, Alt_L ] };
- key <LWIN> { [ Meta_L ] };
- key <RWIN> { [ Meta_R ] };
- modifier_map Mod1 { Alt_L };
- modifier_map Mod4 { Meta_L, Meta_R };
-
-// key <LALT> { [ Alt_L ] };
-// key <ALGR> { [ Mode_switch ] };
-// key <LMTA> { [ Meta_L ] };
-// key <RMTA> { [ Meta_R ] };
-
- include "sun_vndr/us(left_funkeys)"
-
include "capslock(capslock)"
- //include "capslock(shiftlock)"
-
-
-// This default section uses the same symbols as other XKB implementations
-// for greater compatibility & AccessX MouseKeys support, but it is
-// different than the traditional Sun key mappings that date back to the
-// Sun Type 2 keyboard, in which the right side numpad were "R" function
-// keys. To restore the original behavior, comment out this section and
-// uncomment the section below that lists the R key mappings.
- key <KPDV> { [ KP_Divide ] };
- key <KPMU> { [ KP_Multiply ] };
- key <KPSU> { [ KP_Subtract ] };
-
- key <KP7> { [ KP_Home, KP_7 ] };
- key <KP8> { [ KP_Up, KP_8 ] };
- key <KP9> { [ KP_Prior, KP_9 ] };
- key <KPAD> { [ KP_Add ] };
-
- key <KP4> { [ KP_Left, KP_4 ] };
- key <KP5> { [ KP_Begin, KP_5 ] };
- key <KP6> { [ KP_Right, KP_6 ] };
-
- key <KP1> { [ KP_End, KP_1 ] };
- key <KP2> { [ KP_Down, KP_2 ] };
- key <KP3> { [ KP_Next, KP_3 ] };
- key <KPEN> { [ KP_Enter ] };
-
- key <KP0> { [ KP_Insert, KP_0 ] };
- key <KPDL> { [ KP_Delete, KP_Decimal ] };
-
-// End New Keypad section - Begin Sun traditional Keypad section
-
-// key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
-// key <KP8> { [ Up, R8 ], [ KP_8 ] };
-// key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
-// key <KPAD> { [ KP_Add ] };
-//
-// key <KP4> { [ Left, R10 ], [ KP_4 ] };
-// key <KP5> { [ R11, R11 ], [ KP_5 ] };
-// key <KP6> { [ Right, R12 ], [ KP_6 ] };
-//
-// key <KP1> { [ R13, R13 ], [ KP_1, End ] };
-// key <KP2> { [ Down, R14 ], [ KP_2 ] };
-// key <KP3> { [ R15, R15 ], [ KP_3, Next ] };
-// key <KPEN> { [ KP_Enter ] };
-// key <KP0> { [ KP_Insert, KP_Insert], [ KP_0 ] };
-// key <KPDL> { [ Delete, Delete ], [ KP_Decimal ] };
-
-// End "Keypad" section
-
-};
-
-
-xkb_symbols "left_funkeys" {
- // Suppliment to inet(evdev) for added functionality of left-funkeys
- //key <STOP> { [ NoSymbol ], [ L1, L1 ] };
- //key <AGAI> { [ NoSymbol ], [ L2, L2 ] };
- //key <PROP> { [ NoSymbol ], [ L3, L3 ] };
- //key <UNDO> { [ NoSymbol ], [ L4, L4 ] };
- //key <FRNT> { [ NoSymbol ], [ L5, L5 ] };
- //key <COPY> { [ NoSymbol ], [ L6, L6 ] };
- //key <OPEN> { [ NoSymbol ], [ L7, L7 ] };
- //key <PAST> { [ NoSymbol ], [ L8, L8 ] };
- //key <FIND> { [ NoSymbol ], [ L9, L9 ] };
- //key <CUT> { [ NoSymbol ], [ L10, L10 ] };
-
- // The above symbols were chosen for better compatibility withother xkb
- // mappings. The old mappings are kepy below in case someone needs them
- key <STOP> { [ L1, L1, SunStop ] };
- key <AGAI> { [ L2, L2, SunAgain ] };
- key <PROP> { [ L3, L3, SunProps ] };
- key <UNDO> { [ L4, L4, SunUndo ] };
- key <FRNT> { [ L5, L5, SunFront ] };
- key <COPY> { [ L6, L6, SunCopy ] };
- key <OPEN> { [ L7, L7, SunOpen ] };
- key <PAST> { [ L8, L8, SunPaste ] };
- key <FIND> { [ L9, L9, SunFind ] };
- key <CUT> { [ L10, L10, SunCut ] };
-};
-
-hidden
-xkb_symbols "volumekeys" {
- // Suppliment to inet(evdev) for added functionality of audio keys
- key <MUTE> { [ NoSymbol, SunVideoDegauss ] };
- key <VOL-> { [ NoSymbol, XF86MonBrightnessDown ] };
- key <VOL+> { [ NoSymbol, XF86MonBrightnessUp ] };
-
- // The above symbols were chosen for better compatibility withother xkb
- // mappings. The old mappings are kepy below in case someone needs them
- //key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
- //key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
- //key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
- //key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
-};
-
-
-// US/ASCII layout for a Type 4 Sun keyboard
-xkb_symbols "type4basic" {
- include "sun_vndr/us(sunbasic)"
-
- // A few alphanumeric keys are different
- key <AE04> { [ 4, dollar, EuroSign ] };
- key <AE05> { [ 5, percent, EuroSign ] };
- key <AD03> { [ e, E, EuroSign ] };
-
- key <LNFD> { [ Linefeed ] };
-
- // Begin "Editing" section
- key <PRSC> { [ R2, R2, Print ] };
- key <SCLK> { [ R3, R3, Scroll_Lock, Break ] };
- key <PAUS> { [ R1, R1, Pause ] };
-
- // End "Editing" section, begin "Keypad"
- key <KPEQ> { [ R4, KP_Equal, KP_Equal ] };
+ include "srvr_ctrl(xfree86)"
};
-xkb_symbols "type4" {
- include "sun_vndr/us(type4basic)"
+partial alphanumeric_keys
+xkb_symbols "sun_type6" {
- key <BKSL> { [ backslash, bar, brokenbar ] };
-};
+ name[Group1]= "English (US, Sun Type 6/7)";
-// US/ASCII layout for a Type 5 Sun keyboard
-xkb_symbols "type5basic" {
include "sun_vndr/us(sunbasic)"
- include "sun_vndr/us(volumekeys)"
+ include "eurosign(4)"
+ include "level3(ralt_switch)"
- // Begin "Editing" section
- key <PRSC> { [ R2, R2, Print, SunSys_Req ] };
- key <SCLK> { [ R3, R3, Scroll_Lock ] };
- key <PAUS> { [ R1, R1, Pause, Break ] };
- // End "Editing" section
+ key <COMP> { [ Multi_key ] };
+ key <SYRQ> { [ SunSys_Req ] };
};
-xkb_symbols "type5" {
- include "sun_vndr/us(type5basic)"
-
- // A few alphanumeric keys are different
- key <AE04> { [ 4, dollar, EuroSign ] };
- key <AE05> { [ 5, percent, EuroSign ] };
- key <AD03> { [ e, E , EuroSign ] };
- key <BKSL> { [ backslash, bar, brokenbar ] };
+partial alphanumeric_keys
+ xkb_symbols "basic" {
+ include "sun_vndr/us(sunbasic)"
};
-// US/ASCII layout for a Type 5 Sun keyboard
-xkb_symbols "type5hobobasic" {
- include "sun_vndr/us(type5basic)"
+partial alphanumeric_keys
+ xkb_symbols "euro" {
+ include "us(euro)"
};
-xkb_symbols "type5hobo" {
- include "sun_vndr/us(type5hobobasic)"
-
- // A few alphanumeric keys are different
- key <AE04> { [ 4, dollar, EuroSign ] };
- key <AE05> { [ 5, percent, EuroSign ] };
- key <AD03> { [ e, E, EuroSign ] };
- key <BKSL> { [ backslash, bar, brokenbar ] };
+partial alphanumeric_keys
+ xkb_symbols "intl" {
+ include "us(intl)"
+};
- // Here is the hobo keypad:
+partial alphanumeric_keys
+ xkb_symbols "alt-intl" {
+ include "us(alt-intl)"
+};
- key <AE07> { [ 7, ampersand, NoSymbol, NoSymbol, KP_7 ] };
- key <AE08> { [ 8, asterisk, NoSymbol, NoSymbol, KP_8 ] };
- key <AE09> { [ 9, parenleft, NoSymbol, NoSymbol, KP_9 ] };
- key <AE10> { [ 0, parenright, NoSymbol, NoSymbol, KP_Multiply] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak" {
+ include "us(dvorak)"
+};
- key <AD07> { [ u, U, NoSymbol, NoSymbol, KP_4 ] };
- key <AD08> { [ i, I, NoSymbol, NoSymbol, KP_5 ] };
- key <AD09> { [ o, O, NoSymbol, NoSymbol, KP_6 ] };
- key <AD10> { [ p, P, NoSymbol, NoSymbol, KP_Subtract] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak-intl" {
+ include "us(dvorak-intl)"
+};
- key <AC07> { [ j, J, NoSymbol, NoSymbol, KP_1 ] };
- key <AC08> { [ k, K, NoSymbol, NoSymbol, KP_2 ] };
- key <AC09> { [ l, L, NoSymbol, NoSymbol, KP_3 ] };
- key <AC10> { [ semicolon, colon, NoSymbol, NoSymbol, KP_Add ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak-alt-intl" {
+ include "us(dvorak-alt-intl)"
+};
- key <RTRN> { [ Return, NoSymbol, NoSymbol, KP_Enter ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak-l" {
+ include "us(dvorak-l)"
+};
- key <AB07> { [ m, M, NoSymbol, NoSymbol, KP_0 ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak-r" {
+ include "us(dvorak-r)"
+};
- key <AB09> { [ period, greater, NoSymbol, NoSymbol, KP_Decimal] };
- key <AB10> { [ slash, question, NoSymbol, NoSymbol, KP_Divide ] };
+partial alphanumeric_keys
+ xkb_symbols "dvorak-classic" {
+ include "us(dvorak-classic)"
};
+partial alphanumeric_keys
+ xkb_symbols "dvp" {
+ include "us(dvp)"
+};
-xkb_symbols "type6" {
- include "sun_vndr/us(sunbasic)"
- include "sun_vndr/us(volumekeys)"
- include "eurosign(4)"
- include "level3(ralt_switch)"
+partial alphanumeric_keys
+ xkb_symbols "rus" {
+ include "us(rus)"
+};
- key <SYRQ> { [ SunSys_Req ]};
+partial alphanumeric_keys
+ xkb_symbols "mac" {
+ include "us(mac)"
};
+partial alphanumeric_keys
+ xkb_symbols "colemak" {
+ include "us(colemak)"
+};
+partial alphanumeric_keys
+ xkb_symbols "altgr-intl" {
+ include "us(altgr-intl)"
+};
-xkb_symbols "pc101" {
- include "us(pc101)"
- key <RALT> { [ Mode_switch, Meta_R ] };
+partial alphanumeric_keys
+ xkb_symbols "classmate" {
+ include "us(classmate)"
};
-xkb_symbols "pc102" {
- include "us(pc102)"
- key <RALT> { [ Mode_switch, Meta_R ] };
+partial alphanumeric_keys
+ xkb_symbols "classmate-intl" {
+ include "us(classmate-intl)"
};
-xkb_symbols "pc104" {
- include "us(pc104)"
+partial alphanumeric_keys
+ xkb_symbols "classmate-alt-intl" {
+ include "us(classmate-alt-intl)"
};
-xkb_symbols "pc101currency" {
+partial alphanumeric_keys
+ xkb_symbols "classmate-altgr-intl" {
+ include "us(classmate-altgr-intl)"
+};
- key <AE04> { [ 4, dollar ], [ EuroSign ] };
- key <AE05> { [ 5, percent ], [ EuroSign ] };
- key <AD03> { [ e, E ], [ EuroSign ] };
- key <BKSL> { [ backslash, bar ], [ brokenbar ]};
+partial alphanumeric_keys
+ xkb_symbols "olpc" {
+ include "us(olpc)"
};
-xkb_symbols "US101A_Sun" {
+partial alphanumeric_keys
+ xkb_symbols "olpc2" {
+ include "us(olpc2)"
+};
- key <AE04> { [ 4, dollar ], [ EuroSign ] };
- key <AE05> { [ 5, percent ], [ EuroSign ] };
- key <AD03> { [ e, E ], [ EuroSign ] };
- key <BKSL> { [ backslash, bar ], [ brokenbar ]};
+partial alphanumeric_keys
+ xkb_symbols "chr" {
+ include "us(chr)"
+};
- // Begin "Editing" section
- key <PRSC> { [ L5, L5 ], [ Print, SunSys_Req ]};
- key <SCLK> { [ L7, L7 ], [ Scroll_Lock ]};
- key <PAUS> { [ L1, L1 ], [ Pause, Break ]};
- key <INS> { [ L8, L8 ], [ Insert ]};
- key <HOME> { [ L6, L6 ], [ Home ]};
- key <PGUP> { [ L3, L3 ], [ Prior ]};
+partial alphanumeric_keys
+ xkb_symbols "hbs" {
+ include "us(hbs)"
+};
+partial alphanumeric_keys
+ xkb_symbols "htcdream" {
+ include "us(htcdream)"
+};
- key <DELE> { [ L10, L10 ], [ Delete ]};
- key <END> { [ L9, L9 ], [ End ]};
- key <PGDN> { [ L4, L4 ], [ Next ]};
+partial alphanumeric_keys
+ xkb_symbols "workman" {
+ include "us(workman)"
+};
- key <UP> { [ Up ] };
- key <LEFT> { [ Left ] };
- key <DOWN> { [ Down ] };
- key <RGHT> { [ Right ] };
+partial alphanumeric_keys
+ xkb_symbols "workman-intl" {
+ include "us(workman-intl)"
+};
- key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
- key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
+partial alphanumeric_keys
+ xkb_symbols "cz_sk_de" {
+ include "us(cz_sk_de)"
+};
- key <KP7> { [ R7, KP_7 ], [ KP_7, Home ] };
- key <KP8> { [ KP_Up, KP_8 ], [ KP_8 ] };
- key <KP9> { [ R9, KP_9 ], [ KP_9, Prior ] };
- key <KPAD> { [ KP_Add ] };
+partial alphanumeric_keys
+ xkb_symbols "intl-unicode" {
+ include "us(intl-unicode)"
+};
- key <KP4> { [ KP_Left, KP_4 ], [ KP_4 ] };
- key <KP5> { [ R11, KP_5 ], [ KP_5 ] };
- key <KP6> { [ KP_Right, KP_6 ], [ KP_6 ] };
+partial alphanumeric_keys
+ xkb_symbols "alt-intl-unicode" {
+ include "us(alt-intl-unicode)"
+};
- key <KP1> { [ R13, KP_1 ], [ KP_1, End ] };
- key <KP2> { [ KP_Down, KP_2 ], [ KP_2 ] };
- key <KP3> { [ R15, KP_3 ], [ KP_3, Next ] };
- key <KPEN> { [ KP_Enter ] };
+partial alphanumeric_keys
+ xkb_symbols "ats" {
+ include "us(ats)"
+};
- key <LALT> { [ Meta_L ] };
- key <RALT> { [ Alt_L ] };
- key <RCTL> { [ Multi_key ] };
+partial alphanumeric_keys
+ xkb_symbols "crd" {
+ include "us(crd)"
};
diff --git a/xorg-server/xkeyboard-config/symbols/tr b/xorg-server/xkeyboard-config/symbols/tr
index 025f844b2..72bf590f3 100644
--- a/xorg-server/xkeyboard-config/symbols/tr
+++ b/xorg-server/xkeyboard-config/symbols/tr
@@ -352,3 +352,10 @@ xkb_symbols "crh_alt" {
key <AB06> { [ n, N, ntilde, Ntilde ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/tr(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/tw b/xorg-server/xkeyboard-config/symbols/tw
index b98e21ed3..e97c0b60b 100644
--- a/xorg-server/xkeyboard-config/symbols/tw
+++ b/xorg-server/xkeyboard-config/symbols/tw
@@ -72,3 +72,10 @@ xkb_symbols "saisiyat" {
include "level3(ralt_switch)"
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/tw(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/ua b/xorg-server/xkeyboard-config/symbols/ua
index 262243e22..ddfe11f9f 100644
--- a/xorg-server/xkeyboard-config/symbols/ua
+++ b/xorg-server/xkeyboard-config/symbols/ua
@@ -306,3 +306,10 @@ xkb_symbols "homophonic" {
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
};
+
+// EXTRAS:
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/ua(sun_type6)"
+};
diff --git a/xorg-server/xkeyboard-config/symbols/us b/xorg-server/xkeyboard-config/symbols/us
index 84bf15e76..11c971cf1 100644
--- a/xorg-server/xkeyboard-config/symbols/us
+++ b/xorg-server/xkeyboard-config/symbols/us
@@ -1475,3 +1475,8 @@ xkb_symbols "crd" {
// End alphanumeric section
};
+
+partial alphanumeric_keys
+ xkb_symbols "sun_type6" {
+ include "sun_vndr/us(sun_type6)"
+};