U
    p_f	                     @   s   d dl Z d dlZd dlZG dd deZedkre Zede   ede	   ed e
d ede	   ed	 e
d
 dS )    Nc                   @   s4   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dS )Nz/usr/bin/im-config)ospathexistsr   r   r   r   	available   s    zImConfig.availablec                 C   s(   t tddg  }|d |S )N	im-configz-lnone)sorted
subprocesscheck_outputdecodesplitappend)r   ZinputMethodsr   r   r   getAvailableInputMethods   s    
z!ImConfig.getAvailableInputMethodsc                 C   s>  t ddg  d d \}}}|dkr0|S d}zttjd W n tjk
r^   Y d S X zttj	d }W n t
k
r   Y d S X tjd}|sd S d }|dD ]}|d	krd
} qq|s|r|d d dkr|}	nd}	|dkr|	}n<tjdr0tdD ]$}
|
dr
|
 d } q0q
|s:|	}|S )Nr   z-m   Zmissing r   ZXDG_CURRENT_DESKTOP:)ZGNOMEZMATEZUKUIZUnityT)Zzh_Zja_Zko_Zvi_r   defaultz/etc/X11/xinit/xinputrcZrun_im   )r   r   r   r   locale	setlocaleLC_ALLErrorZ	getlocaleLC_CTYPE
ValueErrorr   environgetr	   r
   open
startswith)r   ZsystemConfigZ
userConfigZ
autoConfigZsystem_confZlocZdesktopfoundvalZsystem_defaultliner   r   r   getCurrentInputMethod   sD    
zImConfig.getCurrentInputMethodc                 C   s   t dd|g d S )Nr   z-n)r   call)r   imr   r   r   setInputMethodB   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   :
