mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 00:15:32 +00:00
- add breadcrumbs with keyboard details - add some more information about system - mark files in `km_config` as to the app belonging - some refactorings Test-bot: skip
82 lines
3.2 KiB
Python
Executable file
82 lines
3.2 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import argparse
|
|
import logging
|
|
import os
|
|
import sys
|
|
import gi
|
|
|
|
gi.require_version('Gtk', '3.0')
|
|
|
|
from gi.repository import Gtk
|
|
|
|
from keyman_config import (
|
|
_, __versionwithtag__, __pkgversion__, add_standard_arguments,
|
|
are_requirements_missing, initialize_logging, initialize_sentry,
|
|
verify_dbus_running)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser(description='km-config shows the currently installed ' +
|
|
'Keyman keyboard packages and allows you to view ' +
|
|
'information about them. It enables you to download new ' +
|
|
'keyboard packages from the website or install from ' +
|
|
'local files.')
|
|
parser.add_argument('-i', '--install', action='store', help='download and/or install .kmp ' +
|
|
'package. INSTALL can either be a downloaded .kmp file, a file:// URL ' +
|
|
'pointing to a .kmp file, or a keyman:// URL, possibly with a ' +
|
|
'bcp47=<language> specified (e.g. keyman://download/keyboard/' +
|
|
'sil_el_ethiopian_latin?bcp47=ssy-latn).')
|
|
parser.add_argument('url', nargs='?', default='', metavar='INSTALL',
|
|
help='download and/or install .kmp ' +
|
|
'package. INSTALL can either be a downloaded .kmp file, a file:// URL ' +
|
|
'pointing to a .kmp file, or a keyman:// URL, possibly with a ' +
|
|
'bcp47=<language> specified (e.g. keyman://download/keyboard/' +
|
|
'sil_el_ethiopian_latin?bcp47=ssy-latn).')
|
|
add_standard_arguments(parser)
|
|
|
|
args = parser.parse_args()
|
|
|
|
Gtk.init(sys.argv[1:])
|
|
|
|
initialize_logging(args)
|
|
initialize_sentry()
|
|
verify_dbus_running()
|
|
|
|
if are_requirements_missing():
|
|
if args.install or args.url:
|
|
logging.error('Missing requirements. Please install python3-fonttools.')
|
|
else:
|
|
dialog = Gtk.MessageDialog(
|
|
parent=None, flags=0, message_type=Gtk.MessageType.ERROR,
|
|
buttons=Gtk.ButtonsType.OK,
|
|
text=_("Missing requirements. Please install python3-fonttools."))
|
|
dialog.run()
|
|
dialog.destroy()
|
|
sys.exit(1)
|
|
|
|
# Add these imports only after the check for missing dependencies!
|
|
from keyman_config.handle_install import download_and_install_package
|
|
from keyman_config.ibus_util import verify_ibus_daemon
|
|
from keyman_config.view_installed import ViewInstalledWindow
|
|
|
|
|
|
logging.info('Keyman version %s %s', __versionwithtag__, __pkgversion__)
|
|
|
|
verify_ibus_daemon(False)
|
|
|
|
if args.install:
|
|
download_and_install_package(args.install)
|
|
elif args.url:
|
|
download_and_install_package(args.url)
|
|
else:
|
|
# Workaround for bug in webkit2gtk (#12587)
|
|
if 'WEBKIT_DISABLE_DMABUF_RENDERER' not in os.environ:
|
|
os.environ['WEBKIT_DISABLE_DMABUF_RENDERER'] = '1'
|
|
|
|
w = ViewInstalledWindow()
|
|
try:
|
|
w.run()
|
|
except KeyboardInterrupt:
|
|
logging.debug('User cancelled the app')
|
|
w.destroy()
|