diff options
author | marha <marha@users.sourceforge.net> | 2013-01-16 08:28:39 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-01-16 08:28:39 +0100 |
commit | 92bd40b3fc3830028340969f2cc5c6a0720c4450 (patch) | |
tree | 538a7f953afd9b5cf38e1a24e20b5be333053f92 | |
parent | 2fe4d492f39a5a5b67c4444805f7b1eaa1e745a9 (diff) | |
download | vcxsrv-92bd40b3fc3830028340969f2cc5c6a0720c4450.tar.gz vcxsrv-92bd40b3fc3830028340969f2cc5c6a0720c4450.tar.bz2 vcxsrv-92bd40b3fc3830028340969f2cc5c6a0720c4450.zip |
libxtrans fontconfig glproto libX11 libXau libXext libXft libXinerama
libXmu libfontenc mesa xkeyboard-config
libxtrans: d9f3728ff74ceb956f6cf8dc24b38611f9a4868a
fontconfig: ec5ca08c807585a9230f83c95f7cca6b7065b142
glproto: 8e3407e02980d088e20041e79bdcdd3737e7827e
libX11: f57fd760cba92ad846917f21e94e73e9c846185f
libXau: 1a8a1b2c68967b48c07b56142799b1020f017027
libXext: 8eee1236041d46a21faba32e0d27c26985267d89
libXft: c5e760a239afc62a1c75e0509868e35957c8df52
libXinerama: 470b9356af961ff7d3968b164aa73872b49a5dcc
libXmu: 474d22468c90f99104873b4c5fd7b0f0d2cbf823
libfontenc: 0c3518df24192f18f15ce91c2868560a5973a3dc
mesa: 3c00a52f7e02007f40fa53a06fad517bed0328ff
xkeyboard-config: 8a117fbd4a029b952afcfe362931628dccf496e4
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)" +}; |