def __init__(self, parent=None): KStatusNotifierItem.__init__(self, parent) self.setTitle('synaptiks') self.setIconByName('synaptiks') self.setCategory(KStatusNotifierItem.Hardware) self.setStatus(KStatusNotifierItem.Passive) self.setup_actions() self._config = SynaptiksTrayConfiguration(self) try: self.touchpad = Touchpad.find_first(Display.from_qt()) except Exception as error: # show an error message from synaptiks.kde.error import get_localized_error_message error_message = get_localized_error_message(error) options = KMessageBox.Options(KMessageBox.Notify | KMessageBox.AllowLink) KMessageBox.error(None, error_message, '', options) # disable all touchpad related actions for act in (self.touchpad_on_action, self.preferences_action): act.setEnabled(False) # disable synaptiks autostart, the user can still start synaptiks # manually again, if the reason of the error is fixed self._config.findItem('Autostart').setProperty(False) self._config.writeConfig() else: self.activateRequested.connect(self.show_configuration_dialog) # setup the touchpad manager self.setup_manager(self.touchpad)
def main(): about = KAboutData( b'synaptiks', '', ki18n('synaptiks'), str(synaptiks.__version__), ki18n('touchpad management and configuration application'), KAboutData.License_BSD, ki18n('Copyright (C) 2009, 2010 Sebastian Wiesner')) about.addAuthor(ki18n('Sebastian Wiesner'), ki18n('Maintainer'), '*****@*****.**') about.addCredit(ki18n('Valentyn Pavliuchenko'), ki18n('Debian packaging, russian translation, ' 'bug reporting and testing'), '*****@*****.**') about.setHomepage('http://synaptiks.lunaryorn.de/') about.setOrganizationDomain('synaptiks.lunaryorn.de') KCmdLineArgs.init(sys.argv, about) app = KApplication() window = KMainWindow() touchpad = Touchpad.find_first(Display.from_qt()) config = TouchpadConfiguration(touchpad) config_widget = TouchpadConfigurationWidget(config) config_widget.configurationChanged.connect( partial(print, 'config changed?')) window.setCentralWidget(config_widget) window.show() app.exec_()
def test_getitem_real(self, key, display): touchpad = Touchpad.find_first(display) touchpad_config = config.TouchpadConfiguration(touchpad) value = getattr(touchpad, key) if isinstance(value, float): value = round(value, 5) assert touchpad_config[key] == value
def main(): about = KAboutData( b'synaptiks', '', ki18n('synaptiks'), str(synaptiks.__version__), ki18n('touchpad management and configuration application'), KAboutData.License_BSD, ki18n('Copyright (C) 2009, 2010 Sebastian Wiesner')) about.addAuthor(ki18n('Sebastian Wiesner'), ki18n('Maintainer'), '*****@*****.**') about.addCredit( ki18n('Valentyn Pavliuchenko'), ki18n('Debian packaging, russian translation, ' 'bug reporting and testing'), '*****@*****.**') about.setHomepage('http://synaptiks.lunaryorn.de/') about.setOrganizationDomain('synaptiks.lunaryorn.de') KCmdLineArgs.init(sys.argv, about) app = KApplication() window = KMainWindow() touchpad = Touchpad.find_first(Display.from_qt()) config = TouchpadConfiguration(touchpad) config_widget = TouchpadConfigurationWidget(config) config_widget.configurationChanged.connect( partial(print, 'config changed?')) window.setCentralWidget(config_widget) window.show() app.exec_()
def main(): from argparse import ArgumentParser from synaptiks import __version__ from synaptiks.x11 import Display, DisplayError from synaptiks.touchpad import Touchpad, NoTouchpadError parser = ArgumentParser( description='synaptiks touchpad configuration utility', epilog="""\ Copyright (C) 2010 Sebastian Wiesner <*****@*****.**>, distributed under the terms of the BSD License""") parser.add_argument('--version', help='Show synaptiks version', action='version', version=__version__) actions = parser.add_subparsers(title='Actions') init_act = actions.add_parser( 'init', help='Initialize touchpad configuration. Should not be ' 'called manually, but automatically at session startup.') init_act.set_defaults(action='init') load_act = actions.add_parser( 'load', help='Load the touchpad configuration') load_act.add_argument( 'filename', nargs='?', help='File to load the configuration from. If ' 'empty, the default configuration file is loaded.') load_act.set_defaults(action='load') save_act = actions.add_parser( 'save', help='Save the current touchpad configuration') save_act.add_argument( 'filename', nargs='?', help='File to save the configuration to. If ' 'empty, the default configuration file is used.') save_act.set_defaults(action='save') # default filename to load configuration from parser.set_defaults(filename=None) # we don't have any arguments, but need to make sure, that the builtin # arguments (--help mainly) are handled args = parser.parse_args() try: with Display.from_name() as display: touchpad = Touchpad.find_first(display) if args.action == 'init': driver_defaults = TouchpadConfiguration(touchpad) driver_defaults.save(get_touchpad_defaults_file_path()) if args.action in ('init', 'load'): TouchpadConfiguration.load(touchpad, filename=args.filename) if args.action == 'save': current_config = TouchpadConfiguration(touchpad) current_config.save(filename=args.filename) except DisplayError: parser.error('could not connect to X11 display') except NoTouchpadError: parser.error('no touchpad found')
def make_kcm_widget(component_data, parent=None): """ Create a KCModule object to configure the touchpad. This function tries to find a touchpad on this system and get the configuration of this touchpad. If this succeeds, a :class:`TouchpadConfigurationKCM` is returned, allowing the user to configure the touchpad. Otherwise a :class:`TouchpadErrorKCM` is returned, which gives the user a description of the error and its cause. """ from synaptiks.x11 import Display from synaptiks.touchpad import Touchpad from synaptiks.config import TouchpadConfiguration try: touchpad = Touchpad.find_first(Display.from_qt()) config = TouchpadConfiguration(touchpad) return TouchpadConfigurationKCM(config, component_data, parent) except Exception as error: return TouchpadErrorKCM(error, component_data, parent)
def main(): from argparse import ArgumentParser from synaptiks import __version__ from synaptiks.x11 import Display, DisplayError from synaptiks.touchpad import Touchpad, NoTouchpadError parser = ArgumentParser( description='synaptiks touchpad configuration utility', epilog="""\ Copyright (C) 2010 Sebastian Wiesner <*****@*****.**>, distributed under the terms of the BSD License""") parser.add_argument('--version', help='Show synaptiks version', action='version', version=__version__) actions = parser.add_subparsers(title='Actions') init_act = actions.add_parser( 'init', help='Initialize touchpad configuration. Should not be ' 'called manually, but automatically at session startup.') init_act.set_defaults(action='init') load_act = actions.add_parser('load', help='Load the touchpad configuration') load_act.add_argument('filename', nargs='?', help='File to load the configuration from. If ' 'empty, the default configuration file is loaded.') load_act.set_defaults(action='load') save_act = actions.add_parser( 'save', help='Save the current touchpad configuration') save_act.add_argument('filename', nargs='?', help='File to save the configuration to. If ' 'empty, the default configuration file is used.') save_act.set_defaults(action='save') # default filename to load configuration from parser.set_defaults(filename=None) # we don't have any arguments, but need to make sure, that the builtin # arguments (--help mainly) are handled args = parser.parse_args() try: with Display.from_name() as display: touchpad = Touchpad.find_first(display) if args.action == 'init': driver_defaults = TouchpadConfiguration(touchpad) driver_defaults.save(get_touchpad_defaults_file_path()) if args.action in ('init', 'load'): TouchpadConfiguration.load(touchpad, filename=args.filename) if args.action == 'save': current_config = TouchpadConfiguration(touchpad) current_config.save(filename=args.filename) except DisplayError: parser.error('could not connect to X11 display') except NoTouchpadError: parser.error('no touchpad found')
def test_find_first(self, display): touchpad = Touchpad.find_first(display) assert touchpad assert 'Synaptics Off' in touchpad assert isinstance(touchpad, Touchpad)
def test_find_all(self, display): touchpads = Touchpad.find_all(display) assert touchpads assert all(isinstance(t, Touchpad) for t in touchpads) assert all('Synaptics Off' in t for t in touchpads)
def test_no_touchpad(display): assert not list(Touchpad.find_all(display)) with pytest.raises(NoTouchpadError): Touchpad.find_first(display)
def pytest_funcarg__touchpad(request): display = request.getfuncargvalue('display') return Touchpad.find_first(display)