"empty" model/layout for xkb

Jeremy Huddleston jeremyhu at freedesktop.org
Tue Jan 26 12:36:55 PST 2010


I'm trying to modify xkeyboard-config to create an "empty" xbk rules set.  This way, we can set "empty" as the default in XQuartz and have a clean slate.

I'm having a bit of trouble getting this to work.  Firstly, I can't seem to figure out how to NOT set the +aliases(qwerty) variant on the keycodes.  Secondly, it doesn't seem to recognize my empty symbols file.

Can someone fill me in on what I'm missing?

Thanks,
Jeremy


diff --git a/keycodes/Makefile.am b/keycodes/Makefile.am
index c289e14..68c9a54 100644
--- a/keycodes/Makefile.am
+++ b/keycodes/Makefile.am
@@ -6,6 +6,7 @@ dist_keycodes_DATA = \
 aliases \
 amiga \
 ataritt \
+empty \
 evdev \
 fujitsu \
 hp \
diff --git a/keycodes/empty b/keycodes/empty
new file mode 100644
index 0000000..eedc943
--- /dev/null
+++ b/keycodes/empty
@@ -0,0 +1,4 @@
+default xkb_keycodes "empty" {
+    minimum= 8;
+    maximum= 255;
+};
diff --git a/rules/base.m_k.part b/rules/base.m_k.part
index dd0c391..6d5eda0 100644
--- a/rules/base.m_k.part
+++ b/rules/base.m_k.part
@@ -1,5 +1,6 @@
   amiga		=	amiga(de)
   ataritt	=	ataritt(de)
+  empty         =       empty
   sun4		=	sun(type4_euro)
   sun5		=	sun(type5_euro)
   sun6		=	sun(type6_usb)
diff --git a/rules/base.ml_s.part b/rules/base.ml_s.part
index 1c16b6b..31e5d33 100644
--- a/rules/base.ml_s.part
+++ b/rules/base.ml_s.part
@@ -3,6 +3,8 @@
   amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2
   amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v)
   classmate	us			=	pc+%l(classmate)
+  empty         *                       =       empty
+  *             empty                   =       empty
   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
diff --git a/symbols/Makefile.am b/symbols/Makefile.am
index d22d6c3..7724984 100644
--- a/symbols/Makefile.am
+++ b/symbols/Makefile.am
@@ -30,7 +30,7 @@ terminate \
 tj tm tr \
 ua us uz vn \
 za \
-altwin capslock compose ctrl eurosign group inet \
+altwin capslock compose ctrl empty eurosign group inet \
 keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo
 
 dir_data = $(dist_symbols_DATA)
diff --git a/symbols/empty b/symbols/empty
new file mode 100644
index 0000000..72eb127
--- /dev/null
+++ b/symbols/empty
@@ -0,0 +1,6 @@
+// $XKeyboardConfig$
+
+default
+xkb_symbols "basic" {
+    name[Group1]= "Empty";
+};


In my DDX, I'm doing this to set the rules:

+    XkbRMLVOSet rmlvo = { .rules = "base", .model = "empty", .layout = "empty",
+                          .variant = NULL, .options = NULL };
+    /* We need to really have rules... or something... */
+    XkbSetRulesDflts(&rmlvo);

These changes result in:

xkb_keymap {
xkb_keycodes "empty+aliases(qwerty)" {
    minimum = 8;
    maximum = 255;
    virtual indicator 1 = "Caps Lock";
    virtual indicator 2 = "Num Lock";
    virtual indicator 3 = "Shift Lock";
    virtual indicator 4 = "Group 2";
    virtual indicator 5 = "Mouse Keys";
    virtual indicator 6 = "Scroll Lock";
};

xkb_types "complete" {
...
};

xkb_compatibility "complete" {
...
}

xkb_symbols "unknown" {

    key     <> {
        symbols[Group1]= [               a,               A ],
        symbols[Group2]= [           aring,           Aring ]
    };
    modifier_map Mod2 { <> };
    modifier_map Shift { <> };
    modifier_map Lock { <> };
    modifier_map Mod1 { <> };
    modifier_map Control { <> };
    modifier_map Shift { <> };
    modifier_map Mod1 { <> };
    modifier_map Control { <> };
    modifier_map Mod2 { <> };
};

};

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3333 bytes
Desc: not available
Url : http://lists.x.org/archives/xorg-devel/attachments/20100126/ce437a42/attachment.bin 


More information about the xorg-devel mailing list