// Josh's Dvorak Keyboard Layout Some xtra stuff. // Josh Rahm (joshuarahm@gmail.com) default partial alphanumeric_keys xkb_symbols "josh-dvorak-intl" { name[Group1]= "English (Josh, Dvorak, international with dead keys)"; include "us(dvorak)" key.type = "EIGHT_LEVEL"; modifier_map Mod3 { Hyper_L }; modifier_map Mod4 { Super_L }; modifier_map Mod5 { ISO_Level3_Shift, ISO_Level5_Shift }; key { symbols = [NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol], actions = [ SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True), SetMods(modifiers=level1,clearLocks=True) ] }; key { symbols[Group1] = [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] }; key { type[Group1]="ONE_LEVEL", symbols[Group1]=[ISO_Level3_Shift] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [Super_L] }; key { symbols[Group1] = [Escape, Escape, Home, Home, User, Pointer_EnableKeys, Delete, Delete] }; key { symbols[Group1] = [Return, Return] }; // ‹Return› key { symbols[Group1] = [BackSpace] }; key { type[Group1] = "TWO_LEVEL", symbols[Group1] = [Tab, ISO_Left_Tab] }; key { symbols[Group1] = [Hyper_L, Hyper_L] }; key { type[Group1]="ONE_LEVEL", symbols[Group1]=[ISO_Level3_Shift] }; key { symbols[Group1] = type[Group1]="ONE_LEVEL", symbols[Group1]=[ISO_Level5_Shift] }; // Set Menu and PrintScreen to Hyper. key { symbols = [Hyper_R, Hyper_R], actions = [SetMods(modifiers=Mod3), SetMods(modifiers=Mod3)] }; key { symbols = [Hyper_R, Hyper_R], actions = [SetMods(modifiers=Mod3), SetMods(modifiers=Mod3)] }; key { symbols[Group1] = [grave, asciitilde, dead_grave, dead_tilde] }; key { symbols[Group1] = [1, exclam, exclamdown, onesuperior, U2081, U00B9] }; key { symbols[Group1] = [2, at, twosuperior, dead_doubleacute, U2082, U00B2] }; key { symbols[Group1] = [3, numbersign, threesuperior, dead_macron, U2083, threesuperior] }; key { symbols[Group1] = [4, dollar, currency, sterling, U2084, U2074] }; key { symbols[Group1] = [5, percent, EuroSign, dead_cedilla, U2085, U2075] }; key { symbols[Group1] = [6, dead_circumflex, onequarter, asciicircum, U2086, U2076] }; key { symbols[Group1] = [7, ampersand, onehalf, dead_horn, U2087, U2077] }; key { symbols[Group1] = [8, asterisk, threequarters, dead_ogonek, U2088, U2078, infinity] }; key { symbols[Group1] = [9, parenleft, leftsinglequotemark, dead_breve, U2089, U2079] }; key { symbols[Group1] = [0, parenright, rightsinglequotemark, dead_abovering, U2080, U2070] }; key { symbols[Group1] = [bracketleft, braceleft, guillemotleft, leftdoublequotemark] }; key { symbols[Group1] = [bracketright, braceright, guillemotright, rightdoublequotemark] }; key { symbols[Group1] = [apostrophe, quotedbl, dead_acute, dead_diaeresis] }; key { symbols[Group1] = [comma, less, ccedilla, Ccedilla, leftanglebracket, U2227] }; key { symbols[Group1] = [period, greater, dead_abovedot, dead_caron, rightanglebracket, periodcentered, U2218, U2228] }; key { symbols[Group1] = [p, P, odiaeresis, Odiaeresis, Greek_pi, Greek_PI] }; key { symbols[Group1] = [y, Y, udiaeresis, Udiaeresis, Greek_upsilon, Greek_UPSILON] }; key { symbols[Group1] = [f, F, Greek_alpha, Greek_ALPHA, Greek_phi, Greek_PHI] }; key { symbols[Group1] = [g, G, Greek_epsilon, Greek_EPSILON, Greek_gamma, Greek_GAMMA] }; key { symbols[Group1] = [c, C, copyright, cent, Greek_psi, Greek_PSI] }; key { symbols[Group1] = [r, R, registered, registered, Greek_rho, Greek_RHO] }; key { symbols[Group1] = [l, L, oslash, Ooblique, Greek_lambda, Greek_LAMBDA] }; key { symbols[Group1] = [slash, question, questiondown, dead_hook] }; key { symbols[Group1] = [equal, plus, multiply, division, U2295, U2297, U229B, U29FA] }; // = + × ÷ ⊕ ⊗ ⊛ ∅ key { symbols[Group1] = [a, A, aacute, Aacute, Greek_alpha, Greek_ALPHA] }; key { symbols[Group1] = [o, O, oacute, Oacute, Greek_omicron, Greek_OMICRON, U01A1, U01A0] }; key { symbols[Group1] = [e, E, eacute, Eacute, Greek_epsilon, Greek_EPSILON] }; key { symbols[Group1] = [u, U, uacute, Uacute, Greek_theta, Greek_THETA] }; key { symbols[Group1] = [i, I, iacute, Iacute, Greek_iota, Greek_IOTA, U2208] }; key { symbols[Group1] = [i, I, iacute, Iacute, Greek_iota, Greek_IOTA, U2208] }; key { symbols[Group1] = [d, D, eth, ETH, Greek_delta, Greek_DELTA] }; key { symbols[Group1] = [h, H, Greek_lambda, Greek_LAMBDA, Greek_eta, Greek_ETA] }; key { symbols[Group1] = [t, T, thorn, THORN, Greek_tau, Greek_TAU] }; key { symbols[Group1] = [n, N, ntilde, Ntilde, Greek_nu, Greek_NU, U2115] }; key { symbols[Group1] = [s, S, ssharp, section, Greek_sigma, Greek_SIGMA, U017f, integral] }; key { symbols[Group1] = [minus, underscore, yen, dead_belowdot, U2500] }; key { symbols[Group1] = [semicolon, colon, paragraph, degree, Multi_key] }; key { symbols[Group1] = [q, Q, adiaeresis, Adiaeresis] }; key { symbols[Group1] = [j, J, idiaeresis, Idiaeresis, Greek_xi, Greek_XI] }; key { symbols[Group1] = [k, K, oe, OE, Greek_kappa, Greek_KAPPA] }; key { symbols[Group1] = [x, X, U2713, U2717, Greek_chi, Greek_CHI] }; key { symbols[Group1] = [b, B, Greek_beta, U2603, Greek_beta, Greek_BETA] }; key { symbols[Group1] = [m, M, mu, mu, Greek_mu, Greek_MU] }; key { symbols[Group1] = [w, W, aring, Aring, Greek_finalsmallsigma] }; key { symbols[Group1] = [v, V, U1F609, U1F620, Greek_omega, Greek_OMEGA] }; key { symbols[Group1] = [z, Z, ae, AE, Greek_zeta, Greek_ZETA] }; key { symbols[Group1] = [backslash, bar, notsign, brokenbar, U2502] }; key { symbols[Group1] = [space, space, U12001, U12002, U12003, U12004, U12005, U12006] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [Down] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [Up] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [Left] }; key { type[Group1] = "ONE_LEVEL", symbols[Group1] = [Right] }; }; partial alphanumeric_keys xkb_symbols "jdvp" { include "jr(josh-dvorak-intl)" name[Group1]= "English (Josh, Dovark, Programmer, International)"; key.type = "EIGHT_LEVEL"; key { symbols[Group1] = [dollar, asciitilde] }; key { symbols[Group1] = [ ampersand, percent ] }; key { symbols[Group1] = [ bracketleft, 7, currency, nosymbol, U2087, U2077 ] }; key { symbols[Group1] = [ braceleft, 5, cent, nosymbol, U2085, U2075 ] }; key { symbols[Group1] = [ braceright, 3, yen, nosymbol, U2083, threesuperior ] }; key { symbols[Group1] = [ parenleft, 1, EuroSign, nosymbol, U2081, U00B9] }; key { symbols[Group1] = [ equal, 9, sterling, nosymbol, U2089, U2079 ] }; // symbols row, right side key { symbols[Group1] = [asterisk, 0, nosymbol, nosymbol, U2080, U2070] }; key { symbols[Group1] = [ parenright, 2, onehalf, nosymbol, U2082, twosuperior ] }; key { symbols[Group1] = [ plus, 4, nosymbol, nosymbol, U2084, U2074 ] }; key { symbols[Group1] = [ bracketright, 6, nosymbol, nosymbol, U2086, U2076] }; key { symbols[Group1] = [ exclam, 8, exclamdown, U2E18, U2088, U2078 ] }; // reversed interrobang key { symbols[Group1] = [ numbersign, grave, dead_grave ] }; key { symbols[Group1] = [ semicolon, colon, dead_diaeresis ] }; key { symbols[Group1] = [ at, asciicircum, dead_circumflex, dead_caron ] }; key { symbols[Group1] = [ apostrophe, quotedbl, dead_acute ] }; }; // The Royal Kludge Keyboard stupidly requires you to hold down Fn to toggle // escape, so swap the escape key with the tilda key. partial alphanumeric_keys xkb_symbols "jdvprk" { include "jr(jdvp)" key { symbols[Group1] = [ dollar, asciitilde ] }; key { symbols[Group1] = [ dollar, asciitilde ] }; };