diff --git a/keymapviz/__init__.py b/keymapviz/__init__.py index 5ef10b0..3bc0e46 100644 --- a/keymapviz/__init__.py +++ b/keymapviz/__init__.py @@ -50,10 +50,11 @@ class Keymapviz(): - def __init__(self, keyboard, keymap_c, legends = None): + def __init__(self, keyboard, keymap_c, layout = None, legends = None): self.__keymap_c = keymap_c.read() self.keyboard = KEYBOARDS[keyboard] self.keymaps = self.__parse_keymap_c() + self.layout = layout if layout else 'default' self.legends = legends if legends else {} @@ -108,13 +109,22 @@ def __get_final_ascii_art(self, ascii_art): self.__ascii_art = [aa.format(*self.__legends(_)) for _ in self.keymaps] return self.__ascii_art - def ascii_art(self): - return self.__get_final_ascii_art(self.keyboard.ascii_art) + def __get_layout(self, format, layout): + try: + return format[layout] + except KeyError: + print('The keyboard dose not have the layout `{}`.'.format(layout), file=sys.stderr) + sys.exit(1) + + def ascii_art(self): + aa = self.__get_layout(self.keyboard.ascii_art, self.layout) + return self.__get_final_ascii_art(aa) def layout_editor_json(self): path_ = os.path.dirname(os.path.abspath(__file__)) - with open(os.path.join(path_, self.keyboard.layout_editor_json)) as f: + json_file = self.__get_layout(self.keyboard.layout_editor_json, self.layout) + with open(os.path.join(path_, json_file)) as f: json_ = json.load(f) return [self.__json_format(json_, _) for _ in self.keymaps] @@ -153,8 +163,9 @@ def __get_box_drawing(self, left, down, up, right, center): def fancy_art(self): if hasattr(self.keyboard, 'fancy_ascii_art'): # There already exists a man-made fancy ascii art for this keyboard. - return self.__get_final_ascii_art(self.keyboard.fancy_ascii_art) - aa = self.keyboard.ascii_art + faa = self.__get_layout(self.keyboard.fancy_ascii_art, self.layout) + return self.__get_final_ascii_art(faa) + aa = self.__get_layout(self.keyboard.ascii_art, self.layout) keymapviz_signature_pattern = r'[A-Za-z ]*\[keymapviz\].*\*/\s*$' # If the keymapviz signature is adjacent to certain outline characters, # self.__get_box_drawing will incorrectly interpret the characters composing the signature diff --git a/keymapviz/keyboards/crkbd/__init__.py b/keymapviz/keyboards/crkbd/__init__.py index 951ae08..b303471 100644 --- a/keymapviz/keyboards/crkbd/__init__.py +++ b/keymapviz/keyboards/crkbd/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT|LAYOUT_kc|LAYOUT_split_3x6_3)' -layout_editor_json = 'keyboards/crkbd/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/crkbd/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -14,5 +17,5 @@ * |{ }|{ }|{ }| |{ }|{ }|{ }| * `--------------------' `--------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/crkbd/layout_editor.json b/keymapviz/keyboards/crkbd/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/crkbd/layout_editor.json rename to keymapviz/keyboards/crkbd/layout_editor/default.json diff --git a/keymapviz/keyboards/dactyl_manuform5x6/__init__.py b/keymapviz/keyboards/dactyl_manuform5x6/__init__.py index 1b0381f..c92d001 100644 --- a/keymapviz/keyboards/dactyl_manuform5x6/__init__.py +++ b/keymapviz/keyboards/dactyl_manuform5x6/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT_5x6)' -layout_editor_json = 'keyboards/dactyl_manuform5x6/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/dactyl_manuform5x6/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-------------------------------. ,-------------------------------. * ,---------------|{ 2 }|{ 3 }|{ 4 }|{ 5 }| |{ 6 }|{ 7 }|{ 8 }|{ 9 }|--------------. * |{ 0 }|{ 1 }|-------+-------+-------+-------| |-------+-------+-------+-------|{ 10 }|{ 11 }| @@ -22,9 +25,11 @@ * |-------+-------| |-------+-------| * |{ 60 }|{ 61 }| |{ 62 }|{ 63 }| * `---------------' `---------------' generated by [keymapviz] */ -''' +''', +} -fancy_ascii_art = ''' +fancy_ascii_art = { + 'default': ''' /* ┌───────┬───────┬───────┬───────┐ ┌───────┬───────┬───────┬───────┐ * ┌───────┬───────┤{ 2 }│{ 3 }│{ 4 }│{ 5 }│ │{ 6 }│{ 7 }│{ 8 }│{ 9 }├───────┬──────┐ * │{ 0 }│{ 1 }├───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┤{ 10 }│{ 11 }│ @@ -43,4 +48,5 @@ * ├───────╄━━━━━━━┩ ┡━━━━━━━╃───────┤ * │{ 60 }│{ 61 }│ │{ 62 }│{ 63 }│ * └───────┴───────┘ └───────┴───────┘ generated by [keymapviz] */ -''' +''', +} diff --git a/keymapviz/keyboards/dactyl_manuform5x6/layout_editor.json b/keymapviz/keyboards/dactyl_manuform5x6/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/dactyl_manuform5x6/layout_editor.json rename to keymapviz/keyboards/dactyl_manuform5x6/layout_editor/default.json diff --git a/keymapviz/keyboards/ergo42/__init__.py b/keymapviz/keyboards/ergo42/__init__.py index 830a73e..7d52f1a 100644 --- a/keymapviz/keyboards/ergo42/__init__.py +++ b/keymapviz/keyboards/ergo42/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/ergo42/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/ergo42/layout_editor/default.json' +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* * ,------------------------------------------------. ,------------------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }|{ }| @@ -16,5 +19,5 @@ * | | | | | | | | | | | | | | | | * `------------------------------------------------' `------------------------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/ergo42/layout_editor.json b/keymapviz/keyboards/ergo42/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/ergo42/layout_editor.json rename to keymapviz/keyboards/ergo42/layout_editor/default.json diff --git a/keymapviz/keyboards/ergodash/__init__.py b/keymapviz/keyboards/ergodash/__init__.py index c59ad22..9cb6c19 100644 --- a/keymapviz/keyboards/ergodash/__init__.py +++ b/keymapviz/keyboards/ergodash/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/ergodash/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/ergodash/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------------. ,-----------------------------------------------. * |{ 0 }|{ 1 }|{ 2 }|{ 3 }|{ 4 }|{ 5 }|-------. ,-------|{ 8 }|{ 9 }|{ 10 }|{ 11 }|{ 12 }|{ 13 }| * |-------+-------+-------+-------+-------+-------|{ 6 }| |{ 7 }|-------+-------+-------+-------+-------+-------| @@ -15,9 +18,9 @@ * |-------+-------+-------+-------+---------------' `---------------+-------+-------+-------+-------| * |{ 56 }|{ 57 }|{ 58 }|{ 59 }| ,---------------. ,---------------. |{ 66 }|{ 67 }|{ 68 }|{ 69 }| * `-------------------------------' |{ 48 }| | | |{ 49 }| ,-------------------------------' - * ,-------+-------|{ 62 }| |{ 63 }|-------+-------. - * |{ 60 }|{ 61 }| | | |{ 64 }|{ 65 }| + * ,-------+-------|{ 62 }| |{ 63 }|-------+-------. + * |{ 60 }|{ 61 }| | | |{ 64 }|{ 65 }| * `-----------------------' `-----------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/ergodash/layout_editor.json b/keymapviz/keyboards/ergodash/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/ergodash/layout_editor.json rename to keymapviz/keyboards/ergodash/layout_editor/default.json diff --git a/keymapviz/keyboards/ergodash_2u_inner/__init__.py b/keymapviz/keyboards/ergodash_2u_inner/__init__.py index 4fb7f6b..05a2e44 100644 --- a/keymapviz/keyboards/ergodash_2u_inner/__init__.py +++ b/keymapviz/keyboards/ergodash_2u_inner/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT_4key_2u_inner)' -layout_editor_json = 'keyboards/ergodash_2u_inner/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/ergodash_2u_inner/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------------. ,-----------------------------------------------. * |{ 0 }|{ 1 }|{ 2 }|{ 3 }|{ 4 }|{ 5 }|-------. ,-------|{ 8 }|{ 9 }|{ 10 }|{ 11 }|{ 12 }|{ 13 }| * |-------+-------+-------+-------+-------+-------|{ 6 }| |{ 7 }|-------+-------+-------+-------+-------+-------| @@ -15,8 +18,9 @@ * |-------+-------+-------+-------+---------------' `---------------+-------+-------+-------+-------| * |{ 56 }|{ 57 }|{ 58 }|{ 59 }| ,---------------. ,---------------. |{ 66 }|{ 67 }|{ 68 }|{ 69 }| * `-------------------------------' | |{ 48 }| |{ 49 }| | ,-------------------------------' - * ,-------|{ 61 }|-------| |-------|{ 64 }|-------. - * |{ 60 }| |{ 62 }| |{ 63 }| |{ 65 }| + * ,-------|{ 61 }|-------| |-------|{ 64 }|-------. + * |{ 60 }| |{ 62 }| |{ 63 }| |{ 65 }| * `-----------------------' `-----------------------' * generated by [keymapviz] */ -''' +''', +} diff --git a/keymapviz/keyboards/ergodash_2u_inner/layout_editor.json b/keymapviz/keyboards/ergodash_2u_inner/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/ergodash_2u_inner/layout_editor.json rename to keymapviz/keyboards/ergodash_2u_inner/layout_editor/default.json diff --git a/keymapviz/keyboards/ergodox/__init__.py b/keymapviz/keyboards/ergodox/__init__.py index e23d9ea..2f25534 100644 --- a/keymapviz/keyboards/ergodox/__init__.py +++ b/keymapviz/keyboards/ergodox/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT_ergodox|KEYMAP|KEYMAP_80|LAYOUT_ergodox_pretty|KEYMAP_TKG)' -layout_editor_json = 'keyboards/ergodox/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/ergodox/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* .---------------------------------------------. .---------------------------------------------. * |{0 }|{1 }|{2 }|{3 }|{4 }|{5 }|{6 }| !{7 }|{8 }|{9 }|{10 }|{11 }|{12 }|{13 }| * !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! @@ -23,4 +26,5 @@ * | | |{72 }| !{73 }| | | * '-----------------------' '-----------------------' * generated by [keymapviz] */ -''' +''', +} diff --git a/keymapviz/keyboards/ergodox/layout_editor.json b/keymapviz/keyboards/ergodox/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/ergodox/layout_editor.json rename to keymapviz/keyboards/ergodox/layout_editor/default.json diff --git a/keymapviz/keyboards/fortitude60/__init__.py b/keymapviz/keyboards/fortitude60/__init__.py index 0fea5b0..7859a11 100644 --- a/keymapviz/keyboards/fortitude60/__init__.py +++ b/keymapviz/keyboards/fortitude60/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/fortitude60/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/fortitude60/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -16,5 +19,5 @@ * |{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }| * `----------------------------------' `----------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/fortitude60/layout_editor.json b/keymapviz/keyboards/fortitude60/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/fortitude60/layout_editor.json rename to keymapviz/keyboards/fortitude60/layout_editor/default.json diff --git a/keymapviz/keyboards/helix/__init__.py b/keymapviz/keyboards/helix/__init__.py index 496659b..21ea601 100644 --- a/keymapviz/keyboards/helix/__init__.py +++ b/keymapviz/keyboards/helix/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT)' -layout_editor_json = 'keyboards/helix/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/helix/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -16,5 +19,5 @@ * |{ }|{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }|{ }| * `------------------------------------------------' `------------------------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/helix/layout_editor.json b/keymapviz/keyboards/helix/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/helix/layout_editor.json rename to keymapviz/keyboards/helix/layout_editor/default.json diff --git a/keymapviz/keyboards/kaishi65/__init__.py b/keymapviz/keyboards/kaishi65/__init__.py index ac4d005..72524f6 100644 --- a/keymapviz/keyboards/kaishi65/__init__.py +++ b/keymapviz/keyboards/kaishi65/__init__.py @@ -1,7 +1,10 @@ keymap_keyword = '(?:LAYOUT_65_ansi)' -layout_editor_json = 'keyboards/kaishi65/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/kaishi65/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /*,----------------------------------------------------------------. *|{} | {}| {}| {}| {}| {}| {}| {}| {}| {}| {}| {}| {}| {} | {} | *|----------------------------------------------------------------| @@ -12,7 +15,8 @@ *| {} | {}| {}| {}| {}| {}| {}| {}| {}| {}| {}| {} | {}| {} | *|----------------------------------------------------------------| *| {} | {} | {} | {} | {}| {}| {} | {}| {}| {} | - *`----------------------------------------------------------------' + *`----------------------------------------------------------------' * generated by [keymapviz] */ -''' +''', +} diff --git a/keymapviz/keyboards/kaishi65/layout_editor.json b/keymapviz/keyboards/kaishi65/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/kaishi65/layout_editor.json rename to keymapviz/keyboards/kaishi65/layout_editor/default.json diff --git a/keymapviz/keyboards/kinesis/__init__.py b/keymapviz/keyboards/kinesis/__init__.py index 6e74577..64f498b 100644 --- a/keymapviz/keyboards/kinesis/__init__.py +++ b/keymapviz/keyboards/kinesis/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/kinesis/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/kinesis/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,---------------------------------------------------------------------------------------------------------------------------------. * |{0 } |{1 }|{2 }|{3 }|{4 }|{5 }|{6 }|{7 }|{8 }|{43 }|{44 }|{45 }|{46 }|{47 }|{48 }|{49 }|{50 }|{51 } | * |--------+------+------+------+------+------+-----------------------------------------+------+------+------+------+------+--------| @@ -25,4 +28,5 @@ * | | |{42 }| |{85 }| | | * `--------------------' `--------------------' * generated by [keymapviz] */ -''' +''', +} diff --git a/keymapviz/keyboards/kinesis/layout_editor.json b/keymapviz/keyboards/kinesis/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/kinesis/layout_editor.json rename to keymapviz/keyboards/kinesis/layout_editor/default.json diff --git a/keymapviz/keyboards/kyria/__init__.py b/keymapviz/keyboards/kyria/__init__.py index e70611e..3cf22eb 100644 --- a/keymapviz/keyboards/kyria/__init__.py +++ b/keymapviz/keyboards/kyria/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/kyria/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/kyria/layout_editor/default.json' +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -15,5 +18,5 @@ * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/kyria/layout_editor.json b/keymapviz/keyboards/kyria/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/kyria/layout_editor.json rename to keymapviz/keyboards/kyria/layout_editor/default.json diff --git a/keymapviz/keyboards/lets_split/__init__.py b/keymapviz/keyboards/lets_split/__init__.py index cc8cb4a..e5f25f6 100644 --- a/keymapviz/keyboards/lets_split/__init__.py +++ b/keymapviz/keyboards/lets_split/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT|LAYOUT_ortho_4x12)' -layout_editor_json = 'keyboards/lets_split/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/lets_split/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -14,5 +17,5 @@ * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * `-----------------------------------------' `-----------------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/lets_split/layout_editor.json b/keymapviz/keyboards/lets_split/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/lets_split/layout_editor.json rename to keymapviz/keyboards/lets_split/layout_editor/default.json diff --git a/keymapviz/keyboards/lily58/__init__.py b/keymapviz/keyboards/lily58/__init__.py index 97048c6..91c5427 100644 --- a/keymapviz/keyboards/lily58/__init__.py +++ b/keymapviz/keyboards/lily58/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/lily58/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/lily58/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -17,5 +20,5 @@ * | | | |/ / \ \ | | | | * `----------------------------' '-------''--------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/lily58/layout_editor.json b/keymapviz/keyboards/lily58/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/lily58/layout_editor.json rename to keymapviz/keyboards/lily58/layout_editor/default.json diff --git a/keymapviz/keyboards/mint60/__init__.py b/keymapviz/keyboards/mint60/__init__.py index f4c1acc..6360ac0 100644 --- a/keymapviz/keyboards/mint60/__init__.py +++ b/keymapviz/keyboards/mint60/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:LAYOUT)' -layout_editor_json = 'keyboards/mint60/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/mint60/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* * ,-----------------------------------------. --------------------------------------------------------. * |{ }|{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }|{ }|{ }| @@ -17,5 +20,5 @@ * |{ }|{ }|{ }|{ }|{ }| |{ }|{ }|{ }|{ }|{ }|{ }| * `-----------------------------------------' `-------------------------------------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/mint60/layout_editor.json b/keymapviz/keyboards/mint60/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/mint60/layout_editor.json rename to keymapviz/keyboards/mint60/layout_editor/default.json diff --git a/keymapviz/keyboards/moonlander/__init__.py b/keymapviz/keyboards/moonlander/__init__.py index a8121d9..e7ef26e 100644 --- a/keymapviz/keyboards/moonlander/__init__.py +++ b/keymapviz/keyboards/moonlander/__init__.py @@ -2,9 +2,12 @@ keymap_keyword = '(?:LAYOUT_moonlander)' -layout_editor_json = 'keyboards/moonlander/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/moonlander/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* .---------------------------------------------. .---------------------------------------------. * |{0 }|{1 }|{2 }|{3 }|{4 }|{5 }|{6 }| !{7 }|{8 }|{9 }|{10 }|{11 }|{12 }|{13 }| * !-------+-----+-----+-----+-----+-----+-------! !-------+-----+-----+-----+-----+-----+-------! @@ -21,4 +24,5 @@ * .-------+---------------! !---------------+-------. * !{66 }!{67 }|{68 }| !{69 }|{70 }!{71 }! * '-----------------------' '-----------------------' */ -''' +''', +} diff --git a/keymapviz/keyboards/moonlander/layout_editor.json b/keymapviz/keyboards/moonlander/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/moonlander/layout_editor.json rename to keymapviz/keyboards/moonlander/layout_editor/default.json diff --git a/keymapviz/keyboards/sofle/__init__.py b/keymapviz/keyboards/sofle/__init__.py index 319076f..f1129fa 100644 --- a/keymapviz/keyboards/sofle/__init__.py +++ b/keymapviz/keyboards/sofle/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT)' -layout_editor_json = 'keyboards/sofle/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/sofle/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,-----------------------------------------. ,-----------------------------------------. * |{ 0 }|{ 1 }|{ 2 }|{ 3 }|{ 4 }|{ 5 }| |{ 6 }|{ 7 }|{ 8 }|{ 9 }|{ 10 }|{ 11 }| * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -17,9 +20,11 @@ * | | | / / / \ \ \ | | | * `---------------------------------' `---------------------------------' * generated by [keymapviz] */ -''' +''', +} -fancy_ascii_art = ''' +fancy_ascii_art = { + 'default': ''' /* ┌──────┬──────┬──────┬──────┬──────┬──────┐ ┌──────┬──────┬──────┬──────┬──────┬──────┐ * │{ 0 }│{ 1 }│{ 2 }│{ 3 }│{ 4 }│{ 5 }│ │{ 6 }│{ 7 }│{ 8 }│{ 9 }│{ 10 }│{ 11 }│ * ├──────┼──────┼──────┼──────┼──────┼──────┤ ├──────┼──────┼──────┼──────┼──────┼──────┤ @@ -33,4 +38,5 @@ * │ │ │ │ │ │ │ │ │ │ │ │ * └──────┴──────┴──────┴──────┴───────┘ └───────┴──────┴──────┴──────┴──────┘ * generated by [keymapviz] */ - ''' +''', +} diff --git a/keymapviz/keyboards/sofle/layout_editor.json b/keymapviz/keyboards/sofle/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/sofle/layout_editor.json rename to keymapviz/keyboards/sofle/layout_editor/default.json diff --git a/keymapviz/keyboards/sweet16/__init__.py b/keymapviz/keyboards/sweet16/__init__.py index 1e7f0ef..c1df371 100644 --- a/keymapviz/keyboards/sweet16/__init__.py +++ b/keymapviz/keyboards/sweet16/__init__.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- keymap_keyword = '(?:KEYMAP|LAYOUT|LAYOUT_ortho_4x4|LAYOUT_numpad_4x4)' -layout_editor_json = 'keyboards/sweet16/layout_editor.json' +layout_editor_json = { + 'default': 'keyboards/sweet16/layout_editor/default.json', +} -ascii_art = ''' +ascii_art = { + 'default': ''' /* ,---------------------------. * |{ }|{ }|{ }|{ }| * |------+------+------+------| @@ -14,5 +17,5 @@ * |{ }|{ }|{ }|{ }| * `---------------------------' * generated by [keymapviz] */ -''' - +''', +} diff --git a/keymapviz/keyboards/sweet16/layout_editor.json b/keymapviz/keyboards/sweet16/layout_editor/default.json similarity index 100% rename from keymapviz/keyboards/sweet16/layout_editor.json rename to keymapviz/keyboards/sweet16/layout_editor/default.json diff --git a/keymapviz/keymapviz.py b/keymapviz/keymapviz.py index 0c996df..c310611 100755 --- a/keymapviz/keymapviz.py +++ b/keymapviz/keymapviz.py @@ -34,10 +34,11 @@ def parse_arg(): epilog='Following keyboards are supported.\n * '+'\n * '.join(keyboards), formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument('-c', '--config', type=argparse.FileType('r'), help='configuration file') + parser.add_argument('-c', '--config', type=argparse.FileType('r'), help='configuration file') parser.add_argument('-k', '--keyboard', type=str, choices=keyboards, help='keyboard of keymap.c', metavar='keyboards') + parser.add_argument('-l', '--layout', type=str, help='keyboard layout', metavar='layout') parser.add_argument('-o', '--output', type=str, help='output file name("{}" is replaced index)') - parser.add_argument('-r', '--replace', action='store_true', help='replace comment block including "[keymapviz]" with ascii art. (make *.bac)') + parser.add_argument('-r', '--replace', action='store_true', help='replace comment block including "[keymapviz]" with ascii art. (make *.bac)') parser.add_argument('-t', '--type', dest='type_', type=str, choices=types, default=types[0], help='type of output(default:ascii)') parser.add_argument('-v', '--version', action='version', version='%(prog)s {}'.format(VERSION)) parser.add_argument('keymap_c', type=argparse.FileType('r', encoding='utf-8'), help='keymap.c file name') @@ -83,7 +84,7 @@ def output_keymap_c(output_filename, keymap_c): def main(): arg = parse_arg() - kmvz = keymapviz.Keymapviz(arg.keyboard, arg.keymap_c, read_config(arg.config)) + kmvz = keymapviz.Keymapviz(arg.keyboard, arg.keymap_c, arg.layout, read_config(arg.config)) keymaps = getattr(kmvz, TYPES[arg.type_])() output_keymaps(arg.output, keymaps) diff --git a/setup.py b/setup.py index 71abf17..caaf69a 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def search_json_files(): chdir('keymapviz') - files = glob('keyboards/*/*.json') + files = glob('keyboards/*/layout_editor/*.json') chdir('..') return files