Update to xkbcomp 1.2.1
This commit is contained in:
parent
bfae20612e
commit
34bb2b0d31
@ -1,3 +1,99 @@
|
||||
commit c8375bcb7eb9f86ca1534cdf1143e91372d0499e
|
||||
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri Feb 11 09:06:04 2011 +1000
|
||||
|
||||
xkbcomp 1.2.1
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
|
||||
commit ab5371cefe2b7438b74338f71ff890e0e868b3df
|
||||
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Wed Jan 19 10:06:56 2011 -0500
|
||||
|
||||
config: move man pages into their own directory
|
||||
|
||||
Use services provided by XORG_MANPAGE_SECTIONS.
|
||||
Use standard Makefile for man pages.
|
||||
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
|
||||
commit 9ce8e2f42ab7695b5165ff0a3d892df96a3c3f01
|
||||
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Thu Jan 13 11:15:47 2011 -0500
|
||||
|
||||
man: remove trailing spaces and tabs
|
||||
|
||||
Using s/[ \t]*$//
|
||||
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
|
||||
commit 5ecf21cc130d7a45cb5e82e9c2c3025edee5d74f
|
||||
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Wed Jan 12 16:28:02 2011 -0500
|
||||
|
||||
config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
|
||||
|
||||
This silences an Autoconf warning
|
||||
|
||||
commit e27e8c2a15ddcf51b2ea58f8eced7f035aa1301e
|
||||
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Wed Jan 12 15:29:50 2011 -0500
|
||||
|
||||
config: replace deprecated AC_HELP_STRING with AS_HELP_STRING
|
||||
|
||||
This silences an Automake warning.
|
||||
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
|
||||
commit f524cfae6951442c9a9da65ef317b9c04199500f
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Tue Jan 4 00:05:18 2011 -0800
|
||||
|
||||
Remove out-of-date copies of README.config & README.enhancing
|
||||
|
||||
The up-to-date master copies of those documents are found in the
|
||||
xorg-docs module, and posted on the X.Org website.
|
||||
|
||||
Also, x-docs.org no longer carries X11 docs, so point to X.Org's
|
||||
website instead in the README.
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
|
||||
|
||||
commit cc55d8f5ab021861308b071aab9c03016be15187
|
||||
Author: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Sun Oct 31 20:35:24 2010 -0400
|
||||
|
||||
config: replace AC_CHECK_FILE with test -f as it fails to cross-compile
|
||||
|
||||
Testing for the presence of xkbparse.c is legitimate as this is a build
|
||||
file, but the Autoconf macro assumes it is testing on the host system
|
||||
and fails.
|
||||
|
||||
Tested-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
|
||||
commit 1d59f5b0387b18028017cfab4e55b703417dd735
|
||||
Author: Dirk Wallenstein <halsmit@t-online.de>
|
||||
Date: Fri Oct 29 13:08:25 2010 +0200
|
||||
|
||||
man: Improve description of device selection option
|
||||
|
||||
The device selection option takes effect when loading keymaps, too.
|
||||
|
||||
Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
|
||||
commit 281c7744f682c1ba4f44c0ee22f9bf7188c14fe6
|
||||
Author: Dirk Wallenstein <halsmit@t-online.de>
|
||||
Date: Fri Oct 29 11:35:10 2010 +0200
|
||||
|
||||
Allow uploading a keymap to a single device
|
||||
|
||||
Signed-off-by: Dirk Wallenstein <halsmit@t-online.de>
|
||||
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
|
||||
commit 851a5f6e0c1b2a98d4714d95e40198ab5dc61607
|
||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Sat Oct 30 09:59:52 2010 -0700
|
||||
|
@ -19,6 +19,7 @@
|
||||
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
SUBDIRS = man
|
||||
bin_PROGRAMS = xkbcomp
|
||||
|
||||
AM_CFLAGS = $(XKBCOMP_CFLAGS) -DDFLT_XKB_CONFIG_ROOT='"$(XKBCONFIGROOT)"' $(CWARNFLAGS)
|
||||
@ -58,31 +59,11 @@ xkbcomp_SOURCES = \
|
||||
xkbpath.h \
|
||||
xkbscan.c
|
||||
|
||||
appman_PRE = \
|
||||
xkbcomp.man
|
||||
|
||||
BUILT_SOURCES = xkbparse.c
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
MAINTAINERCLEANFILES += $(BUILT_SOURCES)
|
||||
|
||||
EXTRA_DIST = \
|
||||
README.config \
|
||||
README.enhancing
|
||||
|
||||
appmandir = $(APP_MAN_DIR)
|
||||
|
||||
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
||||
|
||||
EXTRA_DIST += $(appman_PRE)
|
||||
CLEANFILES = $(appman_DATA)
|
||||
|
||||
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
||||
|
||||
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
|
||||
.man.$(APP_MAN_SUFFIX):
|
||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||
|
||||
|
||||
.PHONY: ChangeLog INSTALL
|
||||
|
||||
INSTALL:
|
||||
|
@ -35,7 +35,6 @@
|
||||
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -73,7 +72,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
mkinstalldirs = $(SHELL) $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)"
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_xkbcomp_OBJECTS = action.$(OBJEXT) alias.$(OBJEXT) compat.$(OBJEXT) \
|
||||
@ -96,16 +95,15 @@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
|
||||
SOURCES = $(xkbcomp_SOURCES)
|
||||
DIST_SOURCES = $(xkbcomp_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
appmanDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(appman_DATA)
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
@ -232,6 +230,7 @@ sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
SUBDIRS = man
|
||||
AM_CFLAGS = $(XKBCOMP_CFLAGS) -DDFLT_XKB_CONFIG_ROOT='"$(XKBCONFIGROOT)"' $(CWARNFLAGS)
|
||||
xkbcomp_LDADD = $(XKBCOMP_LIBS)
|
||||
xkbcomp_SOURCES = \
|
||||
@ -268,21 +267,13 @@ xkbcomp_SOURCES = \
|
||||
xkbpath.h \
|
||||
xkbscan.c
|
||||
|
||||
appman_PRE = \
|
||||
xkbcomp.man
|
||||
|
||||
BUILT_SOURCES = xkbparse.c
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL $(BUILT_SOURCES)
|
||||
EXTRA_DIST = README.config README.enhancing $(appman_PRE)
|
||||
appmandir = $(APP_MAN_DIR)
|
||||
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
|
||||
CLEANFILES = $(appman_DATA)
|
||||
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
||||
all: $(BUILT_SOURCES) config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .$(APP_MAN_SUFFIX) .man .c .o .obj .y
|
||||
.SUFFIXES: .c .o .obj .y
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@ -421,22 +412,76 @@ distclean-compile:
|
||||
sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
|
||||
rm -f y.tab.c
|
||||
uninstall-info-am:
|
||||
install-appmanDATA: $(appman_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)"
|
||||
@list='$(appman_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \
|
||||
$(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-appmanDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(appman_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(appmandir)/$$f"; \
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
@ -449,10 +494,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
@ -465,7 +523,7 @@ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
@ -516,6 +574,21 @@ distdir: $(DISTFILES)
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
@ -618,22 +691,23 @@ distcleancheck: distclean
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-am
|
||||
all-am: Makefile $(PROGRAMS) $(DATA) config.h
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)"; do \
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-recursive
|
||||
all-am: Makefile $(PROGRAMS) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
@ -642,7 +716,6 @@ install-strip:
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
@ -653,79 +726,77 @@ maintainer-clean-generic:
|
||||
-rm -f xkbparse.c
|
||||
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
clean: clean-am
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
html: html-recursive
|
||||
|
||||
info: info-am
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-appmanDATA
|
||||
install-data-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-info: install-info-am
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-appmanDATA uninstall-binPROGRAMS \
|
||||
uninstall-info-am
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-info-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
|
||||
clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \
|
||||
distclean distclean-compile distclean-generic distclean-hdr \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-appmanDATA install-binPROGRAMS install-data \
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
|
||||
check-am clean clean-binPROGRAMS clean-generic clean-recursive \
|
||||
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||
dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||
distclean-compile distclean-generic distclean-hdr \
|
||||
distclean-recursive distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-binPROGRAMS install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
|
||||
uninstall-am uninstall-appmanDATA uninstall-binPROGRAMS \
|
||||
uninstall-info-am
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am
|
||||
|
||||
|
||||
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
|
||||
.man.$(APP_MAN_SUFFIX):
|
||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||
|
||||
.PHONY: ChangeLog INSTALL
|
||||
|
||||
INSTALL:
|
||||
|
@ -13,12 +13,8 @@ xkb symbolic names: symbols, geometry, keycodes, compat and types which
|
||||
determine the keyboard behaviour. These five components can combined together
|
||||
into a resulting keyboard mapping using the 'rules' component.
|
||||
|
||||
The complete specification can be found on
|
||||
http://www.x-docs.org/XKB/XKBproto.pdf
|
||||
|
||||
For XKB configuration information see 'README.config' file.
|
||||
|
||||
For information how to further enhance XKB configuration see 'README.enhancing'
|
||||
file.
|
||||
More information, including the complete specification, can be found on
|
||||
http://www.x.org/wiki/XKB
|
||||
|
||||
|
||||
|
||||
|
@ -1,195 +0,0 @@
|
||||
The XKB Configuration Guide
|
||||
|
||||
Kamil Toman, Ivan U. Pascal
|
||||
|
||||
25 November 2002
|
||||
|
||||
Abstract
|
||||
|
||||
This document describes how to configure X11R6.8 XKB from a user's
|
||||
point a few. It converts basic configuration syntax and gives also
|
||||
a few examples.
|
||||
|
||||
1. Overview
|
||||
|
||||
The XKB configuration is decomposed into a number of components. Selecting
|
||||
proper parts and combining them back you can achieve most of configurations
|
||||
you might need. Unless you have a completely atypical keyboard you really
|
||||
don't need to touch any of xkb configuration files.
|
||||
|
||||
2. Selecting XKB Configuration
|
||||
|
||||
The easiest and the most natural way how to specify a keyboard mapping is to
|
||||
use rules component. As its name suggests it describes a number of general
|
||||
rules how to combine all bits and pieces into a valid and useful keyboard
|
||||
mapping. All you need to do is to select a suitable rules file and then to
|
||||
feed it with a few parameters that will adjust the keyboard behaviour to ful-
|
||||
fill your needs.
|
||||
|
||||
The parameters are:
|
||||
|
||||
o XkbRules - files of rules to be used for keyboard mapping composition
|
||||
|
||||
o XkbModel - name of model of your keyboard type
|
||||
|
||||
o XkbLayout - layout(s) you intend to use
|
||||
|
||||
o XkbVariant - variant(s) of layout you intend to use
|
||||
|
||||
o XkbOptions - extra xkb configuration options
|
||||
|
||||
The proper rules file depends on your vendor. In reality, the commonest file
|
||||
of rules is xorg. For each rules file there is a description file named <ven-
|
||||
dor-rules>.lst, for instance xorg.lst which is located in xkb configuration
|
||||
subdirectory rules (for example /etc/X11/xkb/rules).
|
||||
|
||||
2.1 Basic Configuration
|
||||
|
||||
Let's say you want to configure a PC style America keyboard with 104 keys as
|
||||
described in xorg.lst. It can be done by simply writing several lines from
|
||||
below to you xorg.conf configuration file (previously known as
|
||||
/etc/X11/XF86Config-4 or /etc/X11/XF86Config):
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard1"
|
||||
Driver "kbd"
|
||||
|
||||
Option "XkbModel" "pc104"
|
||||
Option "XkbLayout" "us"
|
||||
Option "XKbOptions" ""
|
||||
EndSection
|
||||
|
||||
The values of parameters XkbModel and XkbLayout are really not surprising.
|
||||
The parameters XkbOptions has been explicitly set to empty set of parameters.
|
||||
The parameter XkbVariant has been left out. That means the default variant
|
||||
named basic is loaded.
|
||||
|
||||
Of course, this can be also done at runtime using utility setxkbmap. Shell
|
||||
command loading the same keyboard mapping would look like:
|
||||
|
||||
setxkbmap -rules xorg -model pc104 -layout us -option ""
|
||||
|
||||
The configuration and the shell command would be very analogical for most
|
||||
other layouts (internationalized mappings).
|
||||
|
||||
2.2 Advanced Configuration
|
||||
|
||||
You can use multi-layouts xkb configuration. What does it mean? Basically it
|
||||
allows to load up to four different keyboard layouts at a time. Each such
|
||||
layout would reside in its own group. The groups (unlike complete keyboard
|
||||
remapping) can be switched very fast from one to another by a combination of
|
||||
keys.
|
||||
|
||||
Let's say you want to configure your new Logitech cordless desktop keyboard,
|
||||
you intend to use three different layouts at the same time - us, czech and
|
||||
german (in this order), and that you are used to Alt-Shift combination for
|
||||
switching among them.
|
||||
|
||||
Then the configuration snippet could look like this:
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard1"
|
||||
Driver "kbd"
|
||||
|
||||
Option "XkbModel" "logicordless"
|
||||
Option "XkbLayout" "us,cz,de"
|
||||
Option "XKbOptions" "grp:alt_shift_toggle"
|
||||
EndSection
|
||||
|
||||
Of course, this can be also done at runtime using utility setxkbmap. Shell
|
||||
command loading the same keyboard mapping would look like:
|
||||
|
||||
setxkbmap -rules xorg -model logicordless -layout "us,cz,de" \
|
||||
-option "grp:alt_shift_toggle"
|
||||
|
||||
2.3 Even More Advanced Configuration
|
||||
|
||||
Okay, let's say you are more demanding. You do like the example above but you
|
||||
want it to change a bit. Let's imagine you want the czech keyboard mapping to
|
||||
use another variant but basic. The configuration snippet then changes into:
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard1"
|
||||
Driver "kbd"
|
||||
|
||||
Option "XkbModel" "logicordless"
|
||||
Option "XkbLayout" "us,cz,de"
|
||||
Option "XkbVariant" ",bksl,"
|
||||
Option "XKbOptions" "grp:alt_shift_toggle"
|
||||
EndSection
|
||||
|
||||
That's seems tricky but it is not. The logic for settings of variants is the
|
||||
same as for layouts, that means the first and the third variant settings are
|
||||
left out (set to basic), the second is set to bksl (a special variant with an
|
||||
enhanced definition of the backslash key).
|
||||
|
||||
Analogically, the loading runtime will change to:
|
||||
|
||||
setxkmap -rules xorg -model logicordless -layout "us,cz,de" \
|
||||
-variant ",bksl," -option "grp:alt_shift_toggle"
|
||||
|
||||
2.4 Basic Global Options
|
||||
|
||||
See rules/*.lst files.
|
||||
|
||||
3. Direct XKB Configuration
|
||||
|
||||
Generally, you can directly prescribe what configuration of each of basic xkb
|
||||
components should be used to form the resulting keyboard mapping. This
|
||||
method is rather "brute force". You precisely need to know the structure and
|
||||
the meaning of all of used configuration components.
|
||||
|
||||
This method also exposes all xkb configuration details directly into
|
||||
xorg.conf configuration file which is a not very fortunate fact. In rare
|
||||
occasions it may be needed, though. So how does it work?
|
||||
|
||||
3.1 Basic Components
|
||||
|
||||
There are five basic components used to form a keyboard mapping:
|
||||
|
||||
o key codes - a translation of the scan codes produced by the keyboard
|
||||
into a suitable symbolic form
|
||||
|
||||
o types - a specification of what various combinations of modifiers pro-
|
||||
duce
|
||||
|
||||
o key symbols - a translation of symbolic key codes into actual symbols
|
||||
|
||||
o geometry - a description of physical keyboard geometry
|
||||
|
||||
o compatibility maps - a specification of what action should each key pro-
|
||||
duce in order to preserve compatibility with XKB-unware clients
|
||||
|
||||
3.2 Example Configuration
|
||||
|
||||
Look at the following example:
|
||||
|
||||
Section "InputDevice"
|
||||
Identifier "Keyboard0"
|
||||
Driver "kbd"
|
||||
|
||||
Option "XkbKeycodes" "xorg"
|
||||
Option "XkbTypes" "default"
|
||||
Option "XkbSymbols" "en_US(pc104)+de+swapcaps"
|
||||
Option "XkbGeometry" "pc(pc104)"
|
||||
Option "XkbCompat" "basic+pc+iso9995"
|
||||
EndSection
|
||||
|
||||
This configuration sets the standard X server default interpretation of key-
|
||||
board keycodes, sets the default modificator types. The symbol table is com-
|
||||
posed of extended US keyboard layout in its variant for pc keyboards with 104
|
||||
keys plus all keys for german layout are redefined respectively. Also the
|
||||
logical meaning of Caps-lock and Control keys is swapped. The standard key-
|
||||
board geometry (physical look) is set to pc style keyboard with 104 keys. The
|
||||
compatibility map is set to allow basic shifting, to allow Alt keys to be
|
||||
interpreted and also to allow iso9995 group shifting.
|
||||
|
||||
4. Keymap XKB Configuration
|
||||
|
||||
It is the formerly used way to configure xkb. The user included a special
|
||||
keymap file which specified the direct xkb configuration. This method has
|
||||
been obsoleted by previously described rules files which are far more flexi-
|
||||
ble and allow simpler and more intuitive syntax. It is preserved merely for
|
||||
compatibility reasons. Avoid using it if it is possible.
|
||||
|
||||
|
@ -1,508 +0,0 @@
|
||||
How to further enhance XKB configuration
|
||||
|
||||
Kamil Toman, Ivan U. Pascal
|
||||
|
||||
25 November 2002
|
||||
|
||||
Abstract
|
||||
|
||||
This guide is aimed to relieve one's labour to create a new (inter-
|
||||
nationalized) keyboard layout. Unlike other documents this guide
|
||||
accents the keymap developer's point of view.
|
||||
|
||||
1. Overview
|
||||
|
||||
The developer of a new layout should read the xkb protocol specification (The
|
||||
X Keyboard Extension: Protocol Specification <URL:http://www.x-
|
||||
docs.org/XKB/XKBproto.pdf>) at least to clarify for himself some xkb-specific
|
||||
terms used in this document and elsewhere in xkb configuration. Also it shows
|
||||
wise to understand how the X server and a client digest their keyboard inputs
|
||||
(with and without xkb).
|
||||
|
||||
A useful source is also Ivan Pascal's text about xkb configuration
|
||||
<URL:http://www.tsu.ru/~pascal/en/xkb> often referenced throughout this docu-
|
||||
ment.
|
||||
|
||||
Note that this document covers only enhancements which are to be made to
|
||||
XFree86 version 4.3 and X11R6.7.0 and above.
|
||||
|
||||
2. The Basics
|
||||
|
||||
At the startup (or at later at user's command) X server starts its xkb key-
|
||||
board module extension and reads data from a compiled configuration file.
|
||||
|
||||
This compiled configuration file is prepared by the program xkbcomp which
|
||||
behaves altogether as an ordinary compiler (see man xkbcomp). Its input are
|
||||
human readable xkb configuration files which are verified and then composed
|
||||
into a useful xkb configuration. Users don't need to mess with xkbcomp them-
|
||||
selves, for them it is invisible. Usually, it is started upon X server
|
||||
startup.
|
||||
|
||||
As you probably already know, the xkb configuration consists of five main
|
||||
modules:
|
||||
|
||||
Keycodes
|
||||
Tables that defines translation from keyboard scan codes into
|
||||
reasonable symbolic names, maximum, minimum legal keycodes, sym-
|
||||
bolic aliases and description of physically present LED-indica-
|
||||
tors. The primary sence of this component is to allow definitions
|
||||
of maps of symbols (see below) to be independent of physical key-
|
||||
board scancodes. There are two main naming conventions for sym-
|
||||
bolic names (always four bytes long):
|
||||
|
||||
o names which express some traditional meaning like <SPCE>
|
||||
(stands for space bar) or
|
||||
|
||||
o names which express some relative positioning on a key-
|
||||
board, for example <AE01> (an exclamation mark on US key-
|
||||
boards), on the right there are keys <AE02>, <AE03> etc.
|
||||
|
||||
Types
|
||||
Types describe how the produced key is changed by active modi-
|
||||
fiers (like Shift, Control, Alt, ...). There are several prede-
|
||||
fined types which cover most of used combinations.
|
||||
|
||||
Compat
|
||||
Compatibility component defines internal behaviour of modifiers.
|
||||
Using compat component you can assign various actions (elabo-
|
||||
rately described in xkb specification) to key events. This is
|
||||
also the place where LED-indicators behaviour is defined.
|
||||
|
||||
Symbols
|
||||
For i18n purposes, this is the most important table. It defines
|
||||
what values (=symbols) are assigned to what keycodes (represented
|
||||
by their symbolic name, see above). There may be defined more
|
||||
than one value for each key and then it depends on a key type and
|
||||
on modifiers state (respective compat component) which value will
|
||||
be the resulting one.
|
||||
|
||||
Geometry
|
||||
Geometry files aren't used by xkb itself but they may be used by
|
||||
some external programs to depict a keyboard image.
|
||||
|
||||
All these components have the files located in xkb configuration tree in sub-
|
||||
directories with the same names (usually in /usr/lib/X11/xkb).
|
||||
|
||||
3. Enhancing XKB Configuration
|
||||
|
||||
Most of xkb enhancements concerns a need to define new output symbols for the
|
||||
some input key events. In other words, a need to define a new symbol map (for
|
||||
a new language, standard or just to feel more comfortable when typing text).
|
||||
|
||||
What do you need to do? Generally, you have to define following things:
|
||||
|
||||
o the map of symbols itself
|
||||
|
||||
o the rules to allow users to select the new mapping
|
||||
|
||||
o the description of the new layout
|
||||
|
||||
First of all, it is good to go through existing layouts and to examine them
|
||||
if there is something you could easily adjust to fit your needs. Even if
|
||||
there is nothing similar you may get some ideas about basic concepts and used
|
||||
tricks.
|
||||
|
||||
3.1 Levels And Groups
|
||||
|
||||
Since XFree86 4.3.0 and X11R6.7.0 you can use multi-layout concept of xkb
|
||||
configuration. Though it is still in boundaries of xkb protocol and general
|
||||
ideas, the keymap designer must obey new rules when creating new maps. In
|
||||
exchange we get a more powerful and cleaner configuration system.
|
||||
|
||||
Remember that it is the application which must decide which symbol matches
|
||||
which keycode according to effective modifier state. The X server itself
|
||||
sends only an input event message to. Of course, usually the general inter-
|
||||
pretation is processed by Xlib, Xaw, Motif, Qt, Gtk and similar libraries.
|
||||
The X server only supplies its mapping table (usually upon an application
|
||||
startup).
|
||||
|
||||
You can think of the X server's symbol table as of a irregular table where
|
||||
each keycode has its row and where each combination of modifiers determines
|
||||
exactly one column. The resulting cell then gives the proper symbolic value.
|
||||
Not all keycodes need to bind different values for different combination of
|
||||
modifiers. <ENTER> key, for instance, usually doesn't depend on any modi-
|
||||
fiers so it its row has only one column defined.
|
||||
|
||||
Note that in XKB there is no prior assumption that certain modifiers are
|
||||
bound to certain columns. By editing proper files (see refnam (section 4.2,
|
||||
page 1)) this mapping can be changed as well.
|
||||
|
||||
Unlike the original X protocol the XKB approach is far more flexible. It is
|
||||
comfortable to add one additional XKB term - group. You can think of a group
|
||||
as of a vector of columns per each keycode (naturally the dimension of this
|
||||
vector may differ for different keycodes). What is it good for? The group is
|
||||
not very useful unless you intend to use more than one logically different
|
||||
set of symbols (like more than one alphabet) defined in a single mapping
|
||||
table. But then, the group has a natural meaning - each symbol set has its
|
||||
own group and changing it means selecting a different one. XKB approach
|
||||
allows up to four different groups. The columns inside each group are called
|
||||
(shift) levels. The X server knows the current group and reports it together
|
||||
with modifier set and with a keycode in key events.
|
||||
|
||||
To sum it up:
|
||||
|
||||
o for each keycode XKB keyboard map contains up to four one-dimensional
|
||||
tables - groups (logically different symbol sets)
|
||||
|
||||
o for each group of a keycode XKB keyboard map contains some columns -
|
||||
shift levels (values reached by combinations of Shift, Ctrl, Alt, ...
|
||||
modifiers)
|
||||
|
||||
o different keycodes can have different number of groups
|
||||
|
||||
o different groups of one keycode can have different number of shift lev-
|
||||
els
|
||||
|
||||
o the current group number is tracked by X server
|
||||
|
||||
It is clear that if you sanely define levels, groups and sanely bind modi-
|
||||
fiers and associated actions you can have simultaneously loaded up to four
|
||||
different symbol sets where each of them would reside in its own group.
|
||||
|
||||
The multi-layout concept provides a facility to manipulate xkb groups and
|
||||
symbol definitions in a way that allows almost arbitrary composition of pre-
|
||||
defined symbol tables. To keep it fully functional you have to:
|
||||
|
||||
o define all symbols only in the first group
|
||||
|
||||
o (re)define any modifiers with extra care to avoid strange (anisometric)
|
||||
behaviour
|
||||
|
||||
4. Defining New Layouts
|
||||
|
||||
See Some Words About XKB internals <URL:http://www.tsu.ru/~pas-
|
||||
cal/en/xkb/internals.html> for explanation of used xkb terms and problems
|
||||
addressed by XKB extension.
|
||||
|
||||
See Common notes about XKB configuration files language
|
||||
<URL:http://www.tsu.ru/~pascal/en/xkb/gram-common.html> for more precise
|
||||
explanation of syntax of xkb configuration files.
|
||||
|
||||
4.1 Predefined XKB Symbol Sets
|
||||
|
||||
If you are about to define some European symbol map extension, you might want
|
||||
to use on of four predefined latin alphabet layouts.
|
||||
|
||||
Okay, let's assume you want extend an existing keymap and you want to over-
|
||||
ride a few keys. Let's take a simple U.K. keyboard as an example (defined in
|
||||
pc/gb):
|
||||
|
||||
partial default alphanumeric_keys
|
||||
xkb_symbols "basic" {
|
||||
include "pc/latin"
|
||||
|
||||
name[Group1]="Great Britain";
|
||||
|
||||
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
|
||||
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
|
||||
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
|
||||
key <TLDE> { [ grave, notsign, bar, bar ] };
|
||||
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
|
||||
key <RALT> { type[Group1]="TWO_LEVEL",
|
||||
[ ISO_Level3_Shift, Multi_key ] };
|
||||
|
||||
modifier_map Mod5 { <RALT> };
|
||||
};
|
||||
|
||||
It defines a new layout in basic variant as an extension of common latin
|
||||
alphabet layout. The layout (symbol set) name is set to "Great Britain".
|
||||
Then there are redefinitions of a few keycodes and a modifiers binding. As
|
||||
you can see the number of shift levels is the same for <AE02>, <AE03>,
|
||||
<AC11>, <TLDE> and <BKSL> keys but it differs from number of shift levels of
|
||||
<RALT>.
|
||||
|
||||
Note that the <RALT> key itself is a binding key for Mod5 and that it serves
|
||||
like a shift modifier for LevelThree, together with Shift as a multi-key. It
|
||||
is a good habit to respect this rule in a new similar layout.
|
||||
|
||||
Okay, you could now define more variants of your new layout besides basic
|
||||
simply by including (augmenting/overriding/...) the basic definition and
|
||||
altering what may be needed.
|
||||
|
||||
4.2 Key Types
|
||||
|
||||
The differences in the number of columns (shift levels) are caused by a dif-
|
||||
ferent types of keys (see the types definition in section basics). Most key-
|
||||
codes have implicitly set the keytype in the included 'pc/latin' file to
|
||||
'FOUR_LEVEL_ALPHABETIC'. The only exception is <RALT> keycode which is
|
||||
explicitly set 'TWO_LEVEL' keytype.
|
||||
|
||||
All those names refer to pre-defined shift level schemes. Usually you can
|
||||
choose a suitable shift level scheme from default types scheme list in proper
|
||||
xkb component's subdirectory.
|
||||
|
||||
The most used schemes are:
|
||||
|
||||
ONE_LEVEL
|
||||
The key does not depend on any modifiers. The symbol from first
|
||||
level is always chosen.
|
||||
|
||||
TWO_LEVEL
|
||||
The key uses a modifier Shift and may have two possible values.
|
||||
The second level may be chosen by Shift modifier. If Lock modi-
|
||||
fier (usually Caps-lock) applies the symbol is further processed
|
||||
using system-specific capitalization rules. If both Shift+Lock
|
||||
modifier apply the symbol from the second level is taken and cap-
|
||||
italization rules are applied (and usually have no effect).
|
||||
|
||||
ALPHABETIC
|
||||
The key uses modifiers Shift and Lock. It may have two possible
|
||||
values. The second level may be chosen by Shift modifier. When
|
||||
Lock modifier applies, the symbol from the first level is taken
|
||||
and further processed using system-specific capitalization rules.
|
||||
If both Shift+Lock modifier apply the symbol from the first level
|
||||
is taken and no capitalization rules applied. This is often
|
||||
called shift-cancels-caps behaviour.
|
||||
|
||||
THREE_LEVEL
|
||||
Is the same as TWO_LEVEL but it considers an extra modifier -
|
||||
LevelThree which can be used to gain the symbol value from the
|
||||
third level. If both Shift+LevelThree modifiers apply the value
|
||||
from the third level is also taken. As in TWO_LEVEL, the Lock
|
||||
modifier doesn't influence the resulting level. Only Shift and
|
||||
LevelThree are taken into that consideration. If the Lock modi-
|
||||
fier is active capitalization rules are applied on the resulting
|
||||
symbol.
|
||||
|
||||
FOUR_LEVEL
|
||||
Is the same as THREE_LEVEL but unlike LEVEL_THREE if both
|
||||
Shift+LevelThree modifiers apply the symbol is taken from the
|
||||
fourth level.
|
||||
|
||||
FOUR_LEVEL_ALPHABETIC
|
||||
Is similar to FOUR_LEVEL but also defines shift-cancels-caps
|
||||
behaviour as in ALPHABETIC. If Lock+LevelThree apply the symbol
|
||||
from the third level is taken and the capitalization rules are
|
||||
applied. If Lock+Shift+LevelThree apply the symbol from the
|
||||
third level is taken and no capitalization rules are applied.
|
||||
|
||||
KEYPAD
|
||||
As the name suggest this scheme is primarily used for numeric
|
||||
keypads. The scheme considers two modifiers - Shift and NumLock.
|
||||
If none of modifiers applies the symbol from the first level is
|
||||
taken. If either Shift or NumLock modifiers apply the symbol from
|
||||
the second level is taken. If both Shift+NumLock modifiers apply
|
||||
the symbol from the first level is taken. Again, shift-cancels-
|
||||
caps variant.
|
||||
|
||||
FOUR_LEVEL_KEYPAD
|
||||
Is similar to KEYPAD scheme but considers also LevelThree modi-
|
||||
fier. If LevelThree modifier applies the symbol from the third
|
||||
level is taken. If Shift+LevelThree or NumLock+LevelThree apply
|
||||
the symbol from the fourth level is taken. If all Shift+Num-
|
||||
Lock+LevelThree modifiers apply the symbol from the third level
|
||||
is taken. This also, shift-cancels-caps variant.
|
||||
|
||||
Besides that, there are several schemes for special purposes:
|
||||
|
||||
PC_BREAK
|
||||
It is similar to TWO_LEVEL scheme but it considers the Control
|
||||
modifier rather than Shift. That means, the symbol from the sec-
|
||||
ond level is chosen by Control rather than by Shift.
|
||||
|
||||
PC_SYSRQ
|
||||
It is similar to TWO_LEVEL scheme but it considers the Alt modi-
|
||||
fier rather than Shift. That means, the symbol from the second
|
||||
level is chosen by Alt rather than by Shift.
|
||||
|
||||
CTRL+ALT
|
||||
The key uses modifiers Alt and Control. It may have two possible
|
||||
values. If only one modifier (Alt or Control) applies the symbol
|
||||
from the first level is chosen. Only if both Alt+Control modi-
|
||||
fiers apply the symbol from the second level is chosen.
|
||||
|
||||
SHIFT+ALT
|
||||
The key uses modifiers Shift and Alt. It may have two possible
|
||||
values. If only one modifier (Alt or Shift) applies the symbol
|
||||
from the first level is chosen. Only if both Alt+Shift modifiers
|
||||
apply the symbol from the second level is chosen.
|
||||
|
||||
If needed, special caps schemes may be used. They redefine the standard
|
||||
behaviour of all *ALPHABETIC types. The layouts (maps of symbols) with keys
|
||||
defined in respective types then automatically change their behaviour accord-
|
||||
ingly. Possible redefinitions are:
|
||||
|
||||
o internal
|
||||
|
||||
o internal_nocancel
|
||||
|
||||
o shift
|
||||
|
||||
o shift_nocancel
|
||||
|
||||
None of these schemes should be used directly. They are defined merely for
|
||||
'caps:' xkb options (used to globally change the layouts behaviour).
|
||||
|
||||
Don't alter any of existing key types. If you need a different behaviour cre-
|
||||
ate a new one.
|
||||
|
||||
4.2.1 More On Definitions Of Types
|
||||
|
||||
When the XKB software deals with a separate type description it gets a com-
|
||||
plete list of modifiers that should be taken into account from the 'modi-
|
||||
fiers=<list of modifiers>' list and expects that a set of 'map[<combination
|
||||
of modifiers>]=<list of modifiers>' instructions that contain the mapping for
|
||||
each combination of modifiers mentioned in that list. Modifiers that are not
|
||||
explicitly listed are NOT taken into account when the resulting shift level
|
||||
is computed. If some combination is omitted the program (subroutine) should
|
||||
choose the first level for this combination (a quite reasonable behavior).
|
||||
|
||||
Lets consider an example with two modifiers ModOne and ModTwo:
|
||||
|
||||
type "..." {
|
||||
modifiers = ModOne+ModTwo;
|
||||
map[None] = Level1;
|
||||
map[ModOne] = Level2;
|
||||
};
|
||||
|
||||
In this case the map statements for ModTwo only and ModOne+ModTwo are omit-
|
||||
ted. It means that if the ModTwo is active the subroutine can't found
|
||||
explicit mapping for such combination an will use the default level i.e.
|
||||
Level1.
|
||||
|
||||
But in the case the type described as:
|
||||
|
||||
type "..." {
|
||||
modifiers = ModOne;
|
||||
map[None] = Level1;
|
||||
map[ModOne] = Level2;
|
||||
};
|
||||
|
||||
the ModTwo will not be taken into account and the resulting level depends on
|
||||
the ModOne state only. That means, ModTwo alone produces the Level1 but the
|
||||
combination ModOne+ModTwo produces the Level2 as well as ModOne alone.
|
||||
|
||||
What does it mean if the second modifier is the Lock? It means that in the
|
||||
first case (the Lock itself is included in the list of modifiers but combina-
|
||||
tions with this modifier aren't mentioned in the map statements) the internal
|
||||
capitalization rules will be applied to the symbol from the first level. But
|
||||
in the second case the capitalization will be applied to the symbol chosen
|
||||
accordingly to he first modifier - and this can be the symbol from the first
|
||||
as well as from the second level.
|
||||
|
||||
Usually, all modifiers introduced in 'modifiers=<list of modifiers>' list are
|
||||
used for shift level calculation and then discarded. Sometimes this is not
|
||||
desirable. If you want to use a modifier for shift level calculation but you
|
||||
don't want to discard it, you may list in 'preserve[<combination of modi-
|
||||
fiers>]=<list of modifiers>'. That means, for a given combination all listed
|
||||
modifiers will be preserved. If the Lock modifier is preserved then the
|
||||
resulting symbol is passed to internal capitalization routine regardless
|
||||
whether it has been used for a shift level calculation or not.
|
||||
|
||||
Any key type description can use both real and virtual modifiers. Since real
|
||||
modifiers always have standard names it is not necessary to explicitly
|
||||
declare them. Virtual modifiers can have arbitrary names and can be declared
|
||||
(prior using them) directly in key type definition:
|
||||
|
||||
virtual_modifiers <comma-separated list of modifiers> ;
|
||||
|
||||
as seen in for example basic, pc or mousekeys key type definitions.
|
||||
|
||||
4.3 Rules
|
||||
|
||||
Once you are finished with your symbol map you need to add it to rules file.
|
||||
The rules file describes how all the five basic keycodes, types, compat, sym-
|
||||
bols and geometry components should be composed to give a sensible resulting
|
||||
xkb configuration.
|
||||
|
||||
The main advantage of rules over formerly used keymaps is a possibility to
|
||||
simply parameterize (once) fixed patterns of configurations and thus to ele-
|
||||
gantly allow substitutions of various local configurations into predefined
|
||||
templates.
|
||||
|
||||
A pattern in a rules file (often located in /usr/lib/X11/xkb/rules) can be
|
||||
parameterized with four other arguments: Model, Layout, Variant and Options.
|
||||
For most cases parameters model and layout should be sufficient for choosing
|
||||
a functional keyboard mapping.
|
||||
|
||||
The rules file itself is composed of pattern lines and lines with rules. The
|
||||
pattern line starts with an exclamation mark ('!') and describes how will the
|
||||
xkb interpret the following lines (rules). A sample rules file looks like
|
||||
this:
|
||||
|
||||
! model = keycodes
|
||||
macintosh_old = macintosh
|
||||
...
|
||||
* = xorg
|
||||
|
||||
! model = symbols
|
||||
hp = +inet(%m)
|
||||
microsoftpro = +inet(%m)
|
||||
geniuscomfy = +inet(%m)
|
||||
|
||||
! model layout[1] = symbols
|
||||
macintosh us = macintosh/us%(v[1])
|
||||
* * = pc/pc(%m)+pc/%l[1]%(v[1])
|
||||
|
||||
! model layout[2] = symbols
|
||||
macintosh us = +macintosh/us[2]%(v[2]):2
|
||||
* * = +pc/%l[2]%(v[2]):2
|
||||
|
||||
! option = types
|
||||
caps:internal = +caps(internal)
|
||||
caps:internal_nocancel = +caps(internal_nocancel)
|
||||
|
||||
Each rule defines what certain combination of values on the left side of
|
||||
equal sign ('=') results in. For example a (keyboard) model macintosh_old
|
||||
instructs xkb to take definitions of keycodes from file keycodes/macintosh
|
||||
while the rest of models (represented by a wild card '*') instructs it to
|
||||
take them from file keycodes/xorg. The wild card represents all possible val-
|
||||
ues on the left side which were not found in any of the previous rules. The
|
||||
more specialized (more complete) rules have higher precedence than general
|
||||
ones, i.e. the more general rules supply reasonable default values.
|
||||
|
||||
As you can see some lines contain substitution parameters - the parameters
|
||||
preceded by the percent sign ('%'). The first alphabetical character after
|
||||
the percent sign expands to the value which has been found on the left side.
|
||||
For example +%l%(v) expands into +cz(bksl) if the respective values on the
|
||||
left side were cz layout in its bksl variant. More, if the layout resp. vari-
|
||||
ant parameter is followed by a pair of brackets ('[', ']') it means that xkb
|
||||
should place the layout resp. variant into specified xkb group. If the brack-
|
||||
ets are omitted the first group is the default value.
|
||||
|
||||
So the second block of rules enhances symbol definitions for some particular
|
||||
keyboard models with extra keys (for internet, multimedia, ...) . Other mod-
|
||||
els are left intact. Similarly, the last block overrides some key type defi-
|
||||
nitions, so the common global behaviour ''shift cancels caps'' or ''shift
|
||||
doesn't cancel caps'' can be selected. The rest of rules produces special
|
||||
symbols for each variant us layout of macintosh keyboard and standard pc sym-
|
||||
bols in appropriate variants as a default.
|
||||
|
||||
4.4 Descriptive Files of Rules
|
||||
|
||||
Now you just need to add a detailed description to <rules>.xml description
|
||||
file so the other users (and external programs which often parse this file)
|
||||
know what is your work about.
|
||||
|
||||
4.4.1 Old Descriptive Files
|
||||
|
||||
The formerly used descriptive files were named <rules>.lst Its structure is
|
||||
very simple and quite self descriptive but such simplicity had also some cav-
|
||||
ities, for example there was no way how to describe local variants of layouts
|
||||
and there were problems with the localization of descriptions. To preserve
|
||||
compatibility with some older programs, new XML descriptive files can be con-
|
||||
verted to old format '.lst'.
|
||||
|
||||
For each parameter of rules file should be described its meaning. For the
|
||||
rules file described above the .lst file could look like:
|
||||
|
||||
! model
|
||||
pc104 Generic 104-key PC
|
||||
microsoft Microsoft Natural
|
||||
pc98 PC-98xx Series
|
||||
macintosh Original Macintosh
|
||||
...
|
||||
|
||||
! layout
|
||||
us U.S. English
|
||||
cz Czech
|
||||
de German
|
||||
...
|
||||
|
||||
! option
|
||||
caps:internal uses internal capitalization. Shift cancels Caps
|
||||
caps:internal_nocancel uses internal capitalization. Shift doesn't cancel Caps
|
||||
|
||||
And that should be it. Enjoy creating your own xkb mapping.
|
||||
|
||||
|
12
app/xkbcomp/aclocal.m4
vendored
12
app/xkbcomp/aclocal.m4
vendored
@ -498,18 +498,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
|
55
app/xkbcomp/configure
vendored
55
app/xkbcomp/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.62 for xkbcomp 1.2.0.
|
||||
# Generated by GNU Autoconf 2.62 for xkbcomp 1.2.1.
|
||||
#
|
||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||
#
|
||||
@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='xkbcomp'
|
||||
PACKAGE_TARNAME='xkbcomp'
|
||||
PACKAGE_VERSION='1.2.0'
|
||||
PACKAGE_STRING='xkbcomp 1.2.0'
|
||||
PACKAGE_VERSION='1.2.1'
|
||||
PACKAGE_STRING='xkbcomp 1.2.1'
|
||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||
|
||||
# Factoring default headers for most tests.
|
||||
@ -1326,7 +1326,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures xkbcomp 1.2.0 to adapt to many kinds of systems.
|
||||
\`configure' configures xkbcomp 1.2.1 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1396,7 +1396,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of xkbcomp 1.2.0:";;
|
||||
short | recursive ) echo "Configuration of xkbcomp 1.2.1:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1505,7 +1505,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
xkbcomp configure 1.2.0
|
||||
xkbcomp configure 1.2.1
|
||||
generated by GNU Autoconf 2.62
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||||
@ -1519,7 +1519,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by xkbcomp $as_me 1.2.0, which was
|
||||
It was created by xkbcomp $as_me 1.2.1, which was
|
||||
generated by GNU Autoconf 2.62. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2168,7 +2168,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='xkbcomp'
|
||||
VERSION='1.2.0'
|
||||
VERSION='1.2.1'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -4911,6 +4911,7 @@ AM_DEFAULT_VERBOSITY=1
|
||||
ac_config_headers="$ac_config_headers config.h"
|
||||
|
||||
|
||||
# If both the C file and YACC are missing, the package cannot be build.
|
||||
for ac_prog in 'bison -y' byacc
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
@ -4994,39 +4995,16 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
as_ac_File=`$as_echo "ac_cv_file_$srcdir/xkbparse.c" | $as_tr_sh`
|
||||
{ $as_echo "$as_me:$LINENO: checking for $srcdir/xkbparse.c" >&5
|
||||
$as_echo_n "checking for $srcdir/xkbparse.c... " >&6; }
|
||||
if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
test "$cross_compiling" = yes &&
|
||||
{ { $as_echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
|
||||
$as_echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
if test -r "$srcdir/xkbparse.c"; then
|
||||
eval "$as_ac_File=yes"
|
||||
else
|
||||
eval "$as_ac_File=no"
|
||||
fi
|
||||
fi
|
||||
ac_res=`eval 'as_val=${'$as_ac_File'}
|
||||
$as_echo "$as_val"'`
|
||||
{ $as_echo "$as_me:$LINENO: result: $ac_res" >&5
|
||||
$as_echo "$ac_res" >&6; }
|
||||
if test `eval 'as_val=${'$as_ac_File'}
|
||||
$as_echo "$as_val"'` = yes; then
|
||||
:
|
||||
else
|
||||
test -z "$YACC_INST" && { { $as_echo "$as_me:$LINENO: error: yacc not found - unable to compile xkbparse.y" >&5
|
||||
if test ! -f "$srcdir/xkbparse.c"; then
|
||||
if test -z "$YACC_INST"; then
|
||||
{ { $as_echo "$as_me:$LINENO: error: yacc not found - unable to compile xkbparse.y" >&5
|
||||
$as_echo "$as_me: error: yacc not found - unable to compile xkbparse.y" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for ac_func in strdup strcasecmp
|
||||
do
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
@ -5251,7 +5229,7 @@ fi
|
||||
|
||||
|
||||
|
||||
ac_config_files="$ac_config_files Makefile"
|
||||
ac_config_files="$ac_config_files Makefile man/Makefile"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
@ -5693,7 +5671,7 @@ exec 6>&1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by xkbcomp $as_me 1.2.0, which was
|
||||
This file was extended by xkbcomp $as_me 1.2.1, which was
|
||||
generated by GNU Autoconf 2.62. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -5746,7 +5724,7 @@ Report bugs to <bug-autoconf@gnu.org>."
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_version="\\
|
||||
xkbcomp config.status 1.2.0
|
||||
xkbcomp config.status 1.2.1
|
||||
configured by $0, generated by GNU Autoconf 2.62,
|
||||
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
@ -5871,6 +5849,7 @@ do
|
||||
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
||||
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
|
||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
|
||||
|
||||
*) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
|
||||
$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
|
||||
|
@ -21,7 +21,7 @@ dnl
|
||||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([xkbcomp], [1.2.0],
|
||||
AC_INIT([xkbcomp], [1.2.1],
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xkbcomp])
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AM_MAINTAINER_MODE
|
||||
@ -32,13 +32,16 @@ m4_ifndef([XORG_MACROS_VERSION],
|
||||
XORG_MACROS_VERSION(1.8)
|
||||
XORG_DEFAULT_OPTIONS
|
||||
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
# If both the C file and YACC are missing, the package cannot be build.
|
||||
AC_PROG_YACC
|
||||
AC_PATH_PROG([YACC_INST], $YACC)
|
||||
AC_CHECK_FILE([$srcdir/xkbparse.c], [],
|
||||
[test -z "$YACC_INST" && AC_MSG_ERROR([yacc not found - unable to compile xkbparse.y])])
|
||||
|
||||
if test ! -f "$srcdir/xkbparse.c"; then
|
||||
if test -z "$YACC_INST"; then
|
||||
AC_MSG_ERROR([yacc not found - unable to compile xkbparse.y])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_CHECK_FUNCS([strdup strcasecmp])
|
||||
|
||||
@ -46,11 +49,14 @@ AC_CHECK_FUNCS([strdup strcasecmp])
|
||||
PKG_CHECK_MODULES(XKBCOMP, x11 xkbfile)
|
||||
|
||||
AC_ARG_WITH([xkb_config_root],
|
||||
[AC_HELP_STRING([--with-xkb-config-root=<paths>],
|
||||
[AS_HELP_STRING([--with-xkb-config-root=<paths>],
|
||||
[Set default XKB config root (default: ${datadir}/X11/xkb)])],
|
||||
[XKBCONFIGROOT="$withval"],
|
||||
[XKBCONFIGROOT='${datadir}/X11/xkb'])
|
||||
AC_SUBST([XKBCONFIGROOT])
|
||||
|
||||
|
||||
AC_OUTPUT([Makefile])
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
man/Makefile])
|
||||
AC_OUTPUT
|
||||
|
12
app/xkbcomp/man/Makefile.am
Normal file
12
app/xkbcomp/man/Makefile.am
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
appmandir = $(APP_MAN_DIR)
|
||||
appman_PRE = xkbcomp.man
|
||||
appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
|
||||
|
||||
EXTRA_DIST = $(appman_PRE)
|
||||
CLEANFILES = $(appman_DATA)
|
||||
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
||||
|
||||
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
|
||||
.man.$(APP_MAN_SUFFIX):
|
||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
360
app/xkbcomp/man/Makefile.in
Normal file
360
app/xkbcomp/man/Makefile.in
Normal file
@ -0,0 +1,360 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = man
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(appmandir)"
|
||||
appmanDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(appman_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
|
||||
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
APP_MAN_DIR = @APP_MAN_DIR@
|
||||
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CHANGELOG_CMD = @CHANGELOG_CMD@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CWARNFLAGS = @CWARNFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
|
||||
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FILE_MAN_DIR = @FILE_MAN_DIR@
|
||||
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
|
||||
GREP = @GREP@
|
||||
INSTALL_CMD = @INSTALL_CMD@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIB_MAN_DIR = @LIB_MAN_DIR@
|
||||
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAN_SUBSTS = @MAN_SUBSTS@
|
||||
MISC_MAN_DIR = @MISC_MAN_DIR@
|
||||
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
XKBCOMP_CFLAGS = @XKBCOMP_CFLAGS@
|
||||
XKBCOMP_LIBS = @XKBCOMP_LIBS@
|
||||
XKBCONFIGROOT = @XKBCONFIGROOT@
|
||||
XORG_MAN_PAGE = @XORG_MAN_PAGE@
|
||||
YACC = @YACC@
|
||||
YACC_INST = @YACC_INST@
|
||||
YFLAGS = @YFLAGS@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
appmandir = $(APP_MAN_DIR)
|
||||
appman_PRE = xkbcomp.man
|
||||
appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
|
||||
EXTRA_DIST = $(appman_PRE)
|
||||
CLEANFILES = $(appman_DATA)
|
||||
SUFFIXES = .$(APP_MAN_SUFFIX) .man
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .$(APP_MAN_SUFFIX) .man
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign man/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
install-appmanDATA: $(appman_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)"
|
||||
@list='$(appman_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \
|
||||
$(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-appmanDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(appman_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(appmandir)/$$f"; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(appmandir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-appmanDATA
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-appmanDATA uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-appmanDATA install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-appmanDATA \
|
||||
uninstall-info-am
|
||||
|
||||
|
||||
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
|
||||
.man.$(APP_MAN_SUFFIX):
|
||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
@ -15,16 +15,16 @@ keymap file (.xkm extension) which can be read directly by XKB-capable X
|
||||
servers or utilities. The keymap compiler can also produce C header
|
||||
files or XKB source files. The C header files produced by xkbcomp can be
|
||||
included by X servers or utilities that need a built-in default keymap.
|
||||
The XKB source files produced by \fIxkbcomp\fP are fully resolved and can be
|
||||
The XKB source files produced by \fIxkbcomp\fP are fully resolved and can be
|
||||
used to verify that the files which typically make up an XKB keymap
|
||||
are merged correctly or to create a single file which contains a complete
|
||||
description of the keymap.
|
||||
.PP
|
||||
The \fIsource\fP may specify an X display, or an \fI.xkb\fP or \fI.xkm\fP
|
||||
file; unless explicitly specified, the format of \fIdestination\fP
|
||||
depends on the format of the source. Compiling a \fI.xkb\fP (keymap source)
|
||||
file generates a \fI.xkm\fP (compiled keymap file) by default. If the
|
||||
source is a \fI.xkm\fP file or an X display, \fIxkbcomp\fP generates a
|
||||
depends on the format of the source. Compiling a \fI.xkb\fP (keymap source)
|
||||
file generates a \fI.xkm\fP (compiled keymap file) by default. If the
|
||||
source is a \fI.xkm\fP file or an X display, \fIxkbcomp\fP generates a
|
||||
keymap source file by default.
|
||||
.PP
|
||||
If the \fIdestination\fP is an X display, the keymap for the display
|
||||
@ -48,7 +48,7 @@ Produce a C header file as output (.h extension).
|
||||
Compute defaults for any missing components, such as key names.
|
||||
.TP 8
|
||||
.B \-I\fIdir\fP
|
||||
Specifies top-level directories to be searched for files included by the
|
||||
Specifies top-level directories to be searched for files included by the
|
||||
keymap description. After all directories specified by \-I options
|
||||
have been searched, the current directory and finally, the default
|
||||
xkb directory (usually __projectroot__/lib/X11/xkb) will be searched.
|
||||
@ -58,7 +58,8 @@ use the \-I option alone (i.e. without a directory), before any \-I
|
||||
options that specify the directories you do want searched.
|
||||
.TP 8
|
||||
.B \-i\ \fIdeviceid\fP
|
||||
Specifies device ID (not name) to compile for.
|
||||
If \fIsource\fP or \fIdestination\fP is a valid X display, load the keymap
|
||||
from/into the device with the specified ID (not name).
|
||||
.TP 8
|
||||
.B \-l
|
||||
List maps that specify the \fImap\fP pattern in any files listed on the
|
||||
@ -72,7 +73,7 @@ Merge the compiled information with the map from the server (not implemented
|
||||
yet).
|
||||
.TP 8
|
||||
.B \-o\ \fIname\fP
|
||||
Specifies a name for the generated output file. The default is the name of
|
||||
Specifies a name for the generated output file. The default is the name of
|
||||
the source file with an appropriate extension for the output format.
|
||||
.TP 8
|
||||
.B \-opt\ \fIparts\fP
|
||||
@ -88,7 +89,7 @@ Specifies the root directory for relative path names.
|
||||
Force synchronization for X requests.
|
||||
.TP 8
|
||||
.B \-w\ \fIlvl\fP
|
||||
Controls the reporting of warnings during compilation. A warning level
|
||||
Controls the reporting of warnings during compilation. A warning level
|
||||
of 0 disables all warnings; a warning level of 10 enables them all.
|
||||
.TP 8
|
||||
.B \-xkb
|
@ -1037,6 +1037,7 @@ main(int argc, char *argv[])
|
||||
ok = False;
|
||||
break;
|
||||
}
|
||||
result.xkb->device_spec = device_id;
|
||||
}
|
||||
else if (inputFormat == INPUT_XKM) /* parse xkm file */
|
||||
{
|
||||
@ -1053,6 +1054,7 @@ main(int argc, char *argv[])
|
||||
ERROR1("Cannot read XKM file \"%s\"\n", inputFile);
|
||||
ok = False;
|
||||
}
|
||||
result.xkb->device_spec = device_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user