Skip to content

dvorak-qwerty

Files / keyboard-layout / dvorak-qwerty

Files in keyboard-layout/

DownloadRawXKB · 50 lines · 3.9 KB

From Dvorak with QWERTY's brackets on KDE Plasma (Wayland). MIT licence: LICENSE.

keyboard-layout/dvorak-qwerty
// Dvorak, with the QWERTY keys kept for [ ] { } - _ = +.
// \ | is already on the QWERTY key in Dvorak. The / ? that Dvorak puts on the
// QWERTY [ key moves to the QWERTY ' key (where Dvorak has - _).
// With Ctrl or Meta held, the letter and punctuation keys give their QWERTY
// symbol, so Ctrl+C, Ctrl+V and Meta+Alt+K stay where QWERTY has them. That needs
// the key types in custom-types (installed as /etc/xkb/types/custom) and the XKB
// option custom:types, which loads that file.
// Installed copy: /etc/xkb/symbols/dvorak-qwerty, by install.sh.
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(dvorak)"
name[Group1] = "English (Dvorak, QWERTY brackets and -=)";
replace key <AE11> {[ minus, underscore ]};
replace key <AE12> {[ equal, plus ]};
replace key <AD11> {[ bracketleft, braceleft ]};
replace key <AD12> {[ bracketright, braceright ]};
// Dvorak, Shift, then the QWERTY symbol for Ctrl or Meta, and with Shift
replace key <AD01> { type[Group1] = "DVQ_PUNCT", [ apostrophe, quotedbl, q, Q ] };
replace key <AD02> { type[Group1] = "DVQ_PUNCT", [ comma, less, w, W ] };
replace key <AD03> { type[Group1] = "DVQ_PUNCT", [ period, greater, e, E ] };
replace key <AD04> { type[Group1] = "DVQ_ALPHA", [ p, P, r, R ] };
replace key <AD05> { type[Group1] = "DVQ_ALPHA", [ y, Y, t, T ] };
replace key <AD06> { type[Group1] = "DVQ_ALPHA", [ f, F, y, Y ] };
replace key <AD07> { type[Group1] = "DVQ_ALPHA", [ g, G, u, U ] };
replace key <AD08> { type[Group1] = "DVQ_ALPHA", [ c, C, i, I ] };
replace key <AD09> { type[Group1] = "DVQ_ALPHA", [ r, R, o, O ] };
replace key <AD10> { type[Group1] = "DVQ_ALPHA", [ l, L, p, P ] };
replace key <AC02> { type[Group1] = "DVQ_ALPHA", [ o, O, s, S ] };
replace key <AC03> { type[Group1] = "DVQ_ALPHA", [ e, E, d, D ] };
replace key <AC04> { type[Group1] = "DVQ_ALPHA", [ u, U, f, F ] };
replace key <AC05> { type[Group1] = "DVQ_ALPHA", [ i, I, g, G ] };
replace key <AC06> { type[Group1] = "DVQ_ALPHA", [ d, D, h, H ] };
replace key <AC07> { type[Group1] = "DVQ_ALPHA", [ h, H, j, J ] };
replace key <AC08> { type[Group1] = "DVQ_ALPHA", [ t, T, k, K ] };
replace key <AC09> { type[Group1] = "DVQ_ALPHA", [ n, N, l, L ] };
replace key <AC10> { type[Group1] = "DVQ_ALPHA", [ s, S, semicolon, colon ] };
replace key <AC11> { type[Group1] = "DVQ_PUNCT", [ slash, question, apostrophe, quotedbl ] };
replace key <AB01> { type[Group1] = "DVQ_PUNCT", [ semicolon, colon, z, Z ] };
replace key <AB02> { type[Group1] = "DVQ_ALPHA", [ q, Q, x, X ] };
replace key <AB03> { type[Group1] = "DVQ_ALPHA", [ j, J, c, C ] };
replace key <AB04> { type[Group1] = "DVQ_ALPHA", [ k, K, v, V ] };
replace key <AB05> { type[Group1] = "DVQ_ALPHA", [ x, X, b, B ] };
replace key <AB06> { type[Group1] = "DVQ_ALPHA", [ b, B, n, N ] };
replace key <AB08> { type[Group1] = "DVQ_ALPHA", [ w, W, comma, less ] };
replace key <AB09> { type[Group1] = "DVQ_ALPHA", [ v, V, period, greater ] };
replace key <AB10> { type[Group1] = "DVQ_ALPHA", [ z, Z, slash, question ] };
};

Text, photos and drawings: CC BY 4.0. Code: MIT. Share and adapt them, crediting HomeLab Guides (blog.jacq.cc). Licence and privacy