Mini Shell

Direktori : /lib64/python3.6/site-packages/pyanaconda/__pycache__/
Upload File :
Current File : //lib64/python3.6/site-packages/pyanaconda/__pycache__/keyboard.cpython-36.pyc

3

C��e��@s�dZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZddl
mZee�Zejd	�ZGd
d�de�ZGdd
�d
e�Zdd�Zddd�Zdd�Zddd�Zdd�Zdd�ZdS)zW
This module provides functions for dealing with keyboard layouts/keymaps in Anaconda.
�N)�conf)�localization)�DEFAULT_KEYBOARD)�
sync_run_task)�LOCALIZATION)�get_module_loggerz2^\s*([/\w]+)\s*(?:(?:\(\s*([-\w]+)\s*\))|(?:$))\s*c@seZdZdZdS)�KeyboardConfigErrorz;Exception class for keyboard configuration related problemsN)�__name__�
__module__�__qualname__�__doc__�r
r
� /usr/lib64/python3.6/keyboard.pyr+src@seZdZdZdS)�InvalidLayoutVariantSpeczb
    Exception class for errors related to parsing layout and variant specification strings.

    N)r	r
rrr
r
r
rr1srcCs6tj|�}|sd|}t|��|j�\}}||p2dfS)a�
    Parse layout and variant from the string that may look like 'layout' or
    'layout (variant)'.

    :param layout_variant_str: keyboard layout and variant string specification
    :type layout_variant_str: str
    :return: the (layout, variant) pair, where variant can be ""
    :rtype: tuple
    :raise InvalidLayoutVariantSpec: if the given string isn't a valid layout
                                     and variant specification string

    z='%s' is not a valid keyboard layout and variant specification�)�LAYOUT_VARIANT_RE�matchr�groups)Zlayout_variant_strr�msg�layout�variantr
r
r�parse_layout_variant:s
rrcCs|rd||fS|SdS)z�
    Join layout and variant to form the commonly used 'layout (variant)'
    or 'layout' (if variant is missing) format.

    :type layout: string
    :type variant: string
    :return: 'layout (variant)' or 'layout' string
    :rtype: string

    z%s (%s)Nr
)rrr
r
r�join_layout_variantSsrcCst|�\}}t||�S)at
    Normalize keyboard layout and variant specification given as a single
    string. E.g. for a 'layout(variant) string missing the space between the
    left parenthesis return 'layout (variant)' which is a proper layout and
    variant specification we use.

    :param layout_str: a string specifying keyboard layout and its variant
    :type layout_str: string

    )rr)Z
layout_strrrr
r
r�normalize_layout_variantesrcCs|j�}tj|�}t|�dS)a6
    Function that populates virtual console keymap and X layouts if they
    are missing. By invoking systemd-localed methods this function READS AND
    WRITES CONFIGURATION FILES (but tries to keep their content unchanged).

    :param localization_proxy: DBus proxy of the localization module or None

    N)Z,PopulateMissingKeyboardConfigurationWithTaskr�	get_proxyr)�localization_proxy�	task_path�
task_proxyr
r
r�populate_missing_itemsus	
rcCs|j�}tj|�}t|�dS)z�
    Try to setup VConsole keymap and X11 layouts as specified in kickstart.

    :param localization_proxy: DBus proxy of the localization module or None

    N)ZApplyKeyboardWithTaskrrr)rrrr
r
r�activate_keyboard�s
rcCs�|j}g}x |D]}|j|�r|j|�qW|j|�|r>dS|j}tj|�}|rzt|d�g}tj	|d�s�|jt
�ntjd|�t
g}|j|�t
jjr�|j|�t|�dkr�|jr�|jdg�t
jjr�|jdg�|j�dS)a�
    Set default keyboard settings (layouts, layout switching).

    :param localization_proxy: DBus proxy of the localization module or None
    :type ksdata: object instance
    :param xkl_wrapper: XklWrapper instance
    :type xkl_wrapper: object instance
    :raise InvalidLocaleSpec: if an invalid locale is given (see
                              localization.is_valid_langcode)
    Nrz+Failed to get layout for chosen locale '%s'�zgrp:alt_shift_toggle)ZXLayoutsZis_valid_layout�appendZSetXLayoutsZLanguagerZget_locale_keyboardsr�	langtableZsupports_asciir�log�errorr�systemZcan_configure_keyboardZreplace_layouts�lenZLayoutSwitchOptionsZSetLayoutSwitchOptionsZset_switching_optionsZactivate_default_layout)rZxkl_wrapperZ	x_layoutsZ
valid_layoutsrZlocaleZlayoutsZnew_layoutsr
r
r�set_x_keyboard_defaults�s0





r')r)N)r�rer"Z&pyanaconda.core.configuration.anacondarZ
pyanacondarZpyanaconda.core.constantsrZpyanaconda.modules.common.taskrZ,pyanaconda.modules.common.constants.servicesrZpyanaconda.anaconda_loggersrr	r#�compiler�	Exceptionrrrrrrrr'r
r
r
r�<module>s$