summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriyEshenko <dmitriy.eshenko@vyos.io>2020-11-13 21:41:15 +0000
committerDmitriyEshenko <dmitriy.eshenko@vyos.io>2020-11-13 21:41:15 +0000
commitd6ab086a744fe8e1d5bc071ccd8f0cfa4d272e55 (patch)
treed9418b636ee810e34d5a611b915c393493ec9a49
parent943a4a5016cfc75a352bb3711b5c4c8bfe32b740 (diff)
downloadvyos-1x-d6ab086a744fe8e1d5bc071ccd8f0cfa4d272e55.tar.gz
vyos-1x-d6ab086a744fe8e1d5bc071ccd8f0cfa4d272e55.zip
system: T3038: Add keyboard layout CLI command
-rw-r--r--interface-definitions/system-options.xml.in32
-rwxr-xr-xsrc/conf_mode/system-options.py9
2 files changed, 41 insertions, 0 deletions
diff --git a/interface-definitions/system-options.xml.in b/interface-definitions/system-options.xml.in
index 297f5891e..fab0c0169 100644
--- a/interface-definitions/system-options.xml.in
+++ b/interface-definitions/system-options.xml.in
@@ -80,6 +80,38 @@
#include <include/source-address-ipv4-ipv6.xml.i>
</children>
</node>
+ <leafNode name="keyboard-layout">
+ <properties>
+ <help>System keyboard layout, type ISO2</help>
+ <completionHelp>
+ <list>us fr de fi no dk</list>
+ </completionHelp>
+ <valueHelp>
+ <format>us</format>
+ <description>United States of America</description>
+ </valueHelp>
+ <valueHelp>
+ <format>fr</format>
+ <description>France</description>
+ </valueHelp>
+ <valueHelp>
+ <format>de</format>
+ <description>Germany</description>
+ </valueHelp>
+ <valueHelp>
+ <format>fi</format>
+ <description>Finland</description>
+ </valueHelp>
+ <valueHelp>
+ <format>no</format>
+ <description>Norway</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dk</format>
+ <description>Denmark</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
</children>
</node>
</children>
diff --git a/src/conf_mode/system-options.py b/src/conf_mode/system-options.py
index 22765cef7..bf0bd56ec 100755
--- a/src/conf_mode/system-options.py
+++ b/src/conf_mode/system-options.py
@@ -107,6 +107,15 @@ def apply(options):
else:
cmd('systemctl disable tuned.service')
+ # Keyboard layout
+ if 'keyboard_layout' in options.keys():
+ try:
+ cmd('loadkeys {}'.format(options['keyboard_layout']))
+ except OSError:
+ raise ConfigError('Dos not possible to set {} as keyboard layout'.format(options['keyboard_layout']))
+ else:
+ cmd('loadkeys us')
+
if __name__ == '__main__':
try:
c = get_config()