
8’Wñ  ã               @   s½   d  d l  Z  d  d l Z d  d l Z Gd d „  d e ƒ Z e d k r¹ e ƒ  Z e d e j ƒ  ƒ e d e j	 ƒ  ƒ e d ƒ e j
 d ƒ e d e j	 ƒ  ƒ e d	 ƒ e j
 d
 ƒ d S)é    Nc               @   sL   e  Z d  Z d d „  Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S)ÚImConfigc             C   s   d  S)N© )Úselfr   r   ú;/usr/lib/python3/dist-packages/LanguageSelector/ImConfig.pyÚ__init__   s    zImConfig.__init__c             C   s   t  j j d ƒ S)Nz/usr/bin/im-config)ÚosÚpathÚexists)r   r   r   r   Ú	available   s    zImConfig.availablec             C   s8   t  t j d d g ƒ j ƒ  j ƒ  ƒ } | j d ƒ | S)Nz	im-configz-lÚnone)ÚsortedÚ
subprocessÚcheck_outputÚdecodeÚsplitÚappend)r   ZinputMethodsr   r   r   ÚgetAvailableInputMethods   s    'z!ImConfig.getAvailableInputMethodsc             C   sq  t  j d d g ƒ j ƒ  j ƒ  d  d … \ } } } | d k rD | Sd } y t j t j d ƒ Wn t j k
 r| d  SYn Xt j	 j
 d ƒ } | j d ƒ d d k rÁ | j d ƒ d d k sç t j t j ƒ d d  d … d k rð | } n d } | d k r| } nI t j j d ƒ rTx4 t d ƒ D]& } | j d ƒ r*| j ƒ  d } Pq*W| s`| } |  j | ƒ | S)Nz	im-configz-mé   ZmissingÚ ZXDG_CURRENT_DESKTOPú:é   ÚUnityÚMATEÚGNOMEr   zGNOME-FlashbackÚzh_Úja_Úko_Úvi_r   Údefaultz/etc/X11/xinit/xinputrcZrun_iméÿÿÿÿ)r   r   r   )r   r   r   r   )r   r   r   r   ÚlocaleÚ	setlocaleÚLC_ALLÚErrorr   ÚenvironÚgetZ	getlocaleÚLC_CTYPEr   r	   ÚopenÚ
startswithÚsetInputMethod)r   ZsystemConfigZ
userConfigZ
autoConfigZsystem_confZdesktopZsystem_defaultÚliner   r   r   ÚgetCurrentInputMethod   s2    4	&		zImConfig.getCurrentInputMethodc             C   s   t  j d d | g ƒ d  S)Nz	im-configz-n)r   Úcall)r   Úimr   r   r   r)   :   s    zImConfig.setInputMethodN)Ú__name__Ú
__module__Ú__qualname__r   r
   r   r+   r)   r   r   r   r   r      s
   "r   Ú__main__zavailable input methods: %szcurrent method: %szsetting method 'fcitx'Zfcitxzremoving ~/.xinputrcZREMOVE)r   r   r    Úobjectr   r.   r-   Úprintr   r+   r)   r   r   r   r   Ú<module>   s   2	

