Skip to content

Commit 2a78a57

Browse files
Dandrmoose
authored andcommitted
Add dvorak keyboard layout
1 parent 887d270 commit 2a78a57

File tree

4 files changed

+43
-1
lines changed

4 files changed

+43
-1
lines changed

news.d/feature/1746.linux.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add dvorak keymap support for uinput users.

plover/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ def _set(self, section, option, value):
338338
boolean_option('start_capitalized', False, OUTPUT_CONFIG_SECTION),
339339
int_option('undo_levels', DEFAULT_UNDO_LEVELS, MINIMUM_UNDO_LEVELS, None, OUTPUT_CONFIG_SECTION),
340340
int_option('time_between_key_presses', DEFAULT_TIME_BETWEEN_KEY_PRESSES, MINIMUM_TIME_BETWEEN_KEY_PRESSES, None, OUTPUT_CONFIG_SECTION),
341-
choice_option("keyboard_layout", ("qwerty", "qwertz", "colemak", "colemak-dh"), OUTPUT_CONFIG_SECTION),
341+
choice_option("keyboard_layout", ("qwerty", "qwertz", "colemak", "colemak-dh", "dvorak"), OUTPUT_CONFIG_SECTION),
342342
# Logging.
343343
path_option('log_file_name', expand_path('strokes.log'), LOGGING_CONFIG_SECTION, 'log_file'),
344344
boolean_option('enable_stroke_logging', False, LOGGING_CONFIG_SECTION),

plover/gui_qt/config_window.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ def __init__(self, engine):
400400
"qwertz": "qwertz",
401401
"colemak": "colemak",
402402
"colemak-dh": "colemak-dh",
403+
"dvorak": "dvorak",
403404
}),
404405
_("Set the keyboard layout configurad in your system.\n"
405406
"This only applies when using Linux/BSD and not using X11."))

plover/oslayer/linux/keyboardcontrol_uinput.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,46 @@
275275
"k": e.KEY_N,
276276
"h": e.KEY_M,
277277
},
278+
"dvorak": {
279+
**BASE_LAYOUT,
280+
# Symbols
281+
"/": e.KEY_LEFTBRACE,
282+
"=": e.KEY_RIGHTBRACE,
283+
"-": e.KEY_APOSTROPHE,
284+
# Top row
285+
"'": e.KEY_Q,
286+
",": e.KEY_W,
287+
".": e.KEY_E,
288+
"p": e.KEY_R,
289+
"y": e.KEY_T,
290+
"f": e.KEY_Y,
291+
"g": e.KEY_U,
292+
"c": e.KEY_I,
293+
"r": e.KEY_O,
294+
"l": e.KEY_P,
295+
# Middle row
296+
"a": e.KEY_A,
297+
"o": e.KEY_S,
298+
"e": e.KEY_D,
299+
"u": e.KEY_F,
300+
"i": e.KEY_G,
301+
"d": e.KEY_H,
302+
"h": e.KEY_J,
303+
"t": e.KEY_K,
304+
"n": e.KEY_L,
305+
"s": e.KEY_SEMICOLON,
306+
# Bottom row
307+
";": e.KEY_Z,
308+
"q": e.KEY_X,
309+
"j": e.KEY_C,
310+
"k": e.KEY_V,
311+
"x": e.KEY_B,
312+
"b": e.KEY_N,
313+
"m": e.KEY_M,
314+
"w": e.KEY_COMMA,
315+
"v": e.KEY_DOT,
316+
"z": e.KEY_SLASH,
317+
},
278318
}
279319

280320
KEYCODE_TO_KEY = dict(zip(LAYOUTS[DEFAULT_LAYOUT].values(), LAYOUTS[DEFAULT_LAYOUT].keys()))

0 commit comments

Comments
 (0)