HEX
Server: Apache/2.4.65 (Unix) OpenSSL/3.5.5
System: Linux cpanel.ns-taberra.com 5.14.0-681.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 11 20:19:22 UTC 2026 x86_64
User: asif201 (1002)
PHP: 8.3.0
Disabled: NONE
Upload Files
File: //usr/share/ibus/setup/__pycache__/main.cpython-39.pyc
a

�ask�	@s�ddlmZddlZddlZddlZddlZddlmZedd�edd�edd�ed	d�ed
d�ddl	m
Z
e
�d
�ddl	mZddl	m
Z
ddl	mZddl	mZddlmZddlZddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZmZm Z e!e"d��\Z#Z$Z%Z&Z'Z(e!e"d��\	Z)Z*Z+Z,Z-Z.Z/Z0Z1Gdd�de2�Z3e4dk�r�ze�5ej6d�Wn2ej7�y�e8dej9d �e�5ej6d!�Yn0e�:e�e�:d"�e3�Z;e;�<�dS)#�)�print_functionN)�require_version�GLibz2.0�GdkX11z3.0�Gio�Gtk�IBusz1.0)rz
ibus-setup)r)r)r)r)�path)�EmojiLangButton)�EngineComboBox)�EngineDialog)�EngineTreeView)�EngineAbout)�
DOMAINNAME�_�N_��	cs�eZdZdd�Z�fdd�Zdd�Zd.dd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Z�ZS)/�SetupcCst��rt��qdS�N)rZevents_pendingZmain_iteration��self�r�/usr/share/ibus/setup/main.pyZ__flush_gtk_eventsSszSetup.__flush_gtk_eventscs�tt|���tjdd�|_tjdd�|_tjdd�|_tjdd�|_d|_	|�
�ttd�|_
t�t�t�d�}t��|_|j�t�|j�|�|��dS)Nzorg.freedesktop.ibus.general)Zschemaz#org.freedesktop.ibus.general.hotkeyzorg.freedesktop.ibus.panelz org.freedesktop.ibus.panel.emojiZListBoxz
./setup.ui)�superr�__init__rZSettings�_Setup__settings_general�_Setup__settings_hotkey�_Setup__settings_panel�_Setup__settings_emoji�_Setup__bus�_Setup__init_bus�hasattrr�_Setup__has_list_boxr	�join�dirname�__file__ZBuilder�_Setup__builderZset_translation_domainrZ
add_from_file�_Setup__init_ui)rZgtk_builder_file��	__class__rrrWs*����	
zSetup.__init__cCsJd}d}td�}|�|||�d}d}|�||�d}d}|�||�dS)NZtriggersZ
switch_engine�>Use shortcut with shift to switch to the previous input method�emojiZemoji_dialog�unicodeZunicode_dialog)r�_Setup__init_hotkey)r�name�label�commentrrrZ__init_hotkeysus�zSetup.__init_hotkeysNcCs�|dkr|j�d�}n"|dkr,|j�d�}n|j�|�}|j�d|�}|j�d|�}|�d�|��d�|�}|dkr�|d|7}|�|�|dkr�|�d	|j	dd
|||�n6|dkr�|�d	|j	dd||�n|�d	|j	|d||�dS)
Nr,Zhotkeyr-zunicode-hotkeyz	button_%szentry_%s�; �
�clickedzpanel/�panel/emojizgeneral/hotkey)
r�get_strvrr'�
get_object�set_textr$�set_tooltip_text�connect�"_Setup__shortcut_button_clicked_cb)rr/r0r1�	shortcuts�button�entry�tooltiprrrZ
__init_hotkey�s.


�
�
�zSetup.__init_hotkeycCs@|j�d�|_|j�d|jdtjj�|j�d�|_|j�d|jdtjj�|j�d�|_	|j	�
d�|j�d�|_|j�d	|jdtjj�|j�d
�|_|j�d|jdtjj�|j�d	|jd
tjj
�|j�d�|_|j�d|jdtjj�|j�d�|_|j�d|jdtjj�|j�d�|_|j�d|jdtjj�dS)NZ!combobox_lookup_table_orientationzlookup-table-orientation�activeZcombobox_panel_showZshowZcombobox_panel_position�Zcheckbutton_custom_fontzuse-custom-fontZfontbutton_custom_fontzcustom-font�	font-name�	sensitiveZ checkbutton_show_icon_on_systrayzshow-icon-on-systrayZcheckbutton_show_im_namezshow-im-nameZ&checkbutton_use_glyph_from_engine_langzuse-glyph-from-engine-lang)r'r7Z)_Setup__combobox_lookup_table_orientationr�bindr�SettingsBindFlags�DEFAULTZ_Setup__combobox_panel_showZ_Setup__combobox_panel_position�
set_activeZ_Setup__checkbutton_custom_fontZ_Setup__fontbutton_custom_font�GETZ(_Setup__checkbutton_show_icon_on_systrayZ _Setup__checkbutton_show_im_nameZ*_Setup__checkbutton_glyph_from_engine_langrrrrZ__init_panel�s�����������������zSetup.__init_panelcs�j�d��_�j�d�jdtjj��j�d��_�j�d�jdtjj��j�d��_	�j�d�j	dtjj��j
���_�j�d��_
�jr��j
�d	��j
��n�j
��j�i��jD]}|�|��<qˆj�d
�}�fdd�|D�}�j�d
��_�j�|��j�d�}�j�r:|�d	�|�d�j�n|�d�j��j�d�}|�d�fdd���j�d�}|�d�fdd���j�d�}|�d�fdd���j�d�}|�d�j�i�_�j�d�}|�d�j��j
�d�j��j�d�j��j�d�j�dS)NZcheckbutton_embed_preedit_textzembed-preedit-textr@Zcheckbutton_use_sys_layoutzuse-system-keyboard-layoutZcheckbutton_use_global_enginezuse-global-engineZcombobox_enginesT�preload-enginescsg|]}|�vr�|�qSrr)�.0r/)�tmp_dictrr�
<listcomp>�z(Setup.__init_general.<locals>.<listcomp>Ztreeview_engines�button_engine_addr4�button_engine_removecs
�j��Sr)�_Setup__treeviewZ
remove_engine��argsrrr�<lambda>rMz&Setup.__init_general.<locals>.<lambda>�button_engine_upcs
�j��Sr)rPZmove_up_enginerQrrrrSrM�button_engine_downcs
�j��Sr)rPZmove_down_enginerQrrrrSrM�button_engine_about�button_engine_preferencesznotify::active-engineznotify::engines)r'r7Z&_Setup__checkbutton_embed_preedit_textrrDrrErFZ"_Setup__checkbutton_use_sys_layoutZ%_Setup__checkbutton_use_global_enginer Zlist_engines�_Setup__engines�_Setup__comboboxr#Zset_no_show_allZhide�set_engines�get_namer6rP�
set_sensitiver:�_Setup__button_engine_add_cb�&_Setup__button_engine_add_cb_deprecate�_Setup__button_engine_about_cb�_Setup__engine_setup_exec_list�$_Setup__button_engine_preferences_cb�(_Setup__combobox_notify_active_engine_cb�_Setup__treeview_notify_cb)r�e�engine_names�enginesr=r)rrKrZ__init_general�sx������


��zSetup.__init_generalcs��j�d��_�j�d��j�d�jdtjj��j�d��_	�j�d�j	dtjj��j�d��_
�j
��}t|�t
jkr�|�dd	�|�d
d��j�d��_�j�d
�j
dtjj��j�d
�jdtjj���fdd�}�fdd�}|dd��j�����d|��j�d|��j�d��_�j�d
�jdtjj��j�d��_�j�d��_�j�d��_�fdd�}�fdd�}|dd��j�d |��j�d |��j�d |��j�d!|�dS)"NZfontbutton_emoji_fontu🙂🍎🚃💓📧⚽🐳ZfontrBZbutton_emoji_langZlangZcheckbutton_emoji_partial_matchZwrapTzmax-width-chars�JZspinbutton_emoji_partial_matchzhas-partial-matchr@rCcs6d}t����}|�j�|�kr$dS�j�||�dS)N�partial-match-length)�int�	get_valuer�get_int�set_int)�obj�key�value�Z
adjustmentrrr�adjustment_value_changed_cbCs
z7Setup.__init_emoji.<locals>.adjustment_value_changed_cbcs6�j�|�}t�j���}||kr&dS�j�|�dSr)rrkri�&_Setup__spinbutton_emoji_partial_matchrjZ	set_value)�settingsrnro�	old_valuerrr�&settings_emoji_partial_match_length_cbIs
zBSetup.__init_emoji.<locals>.settings_emoji_partial_match_length_cbrhz
value-changedzchanged::partial-match-lengthZhbox_emoji_partial_matchZradiobutton_emoji_prefix_matchZradiobutton_emoji_suffix_matchZradiobutton_emoji_contain_matchcsbd}d}|��sdS|�jkr$d}n,|�jkr4d}n|�jkrDd}ntd�dS�j�||�dS)N�partial-match-conditionr��z Wrong emoji partial match object)�
get_active�&_Setup__radiobutton_emoji_prefix_match�&_Setup__radiobutton_emoji_suffix_match�'_Setup__radiobutton_emoji_contain_match�printrrl)rmrnZ	conditionrrr�!radiobuton_emoji_partial_match_cbbs


z=Setup.__init_emoji.<locals>.radiobuton_emoji_partial_match_cbcsf�j�|�}d}|dkr �j}n,|dkr0�j}n|dkr@�j}ntd�dS|��rXdS|�d�dS)Nrrwrxz#Wrong emoji partial match conditionT)rrkrzr{r|r}ryrG)rsrnrormrrr�)settings_emoji_partial_match_condition_cbqszESetup.__init_emoji.<locals>.settings_emoji_partial_match_condition_cbrvZtoggledz changed::partial-match-condition)r'r7Z_Setup__fontbutton_emoji_fontZset_preview_textrrDrrErFZ_Setup__button_emoji_langZ'_Setup__checkbutton_emoji_partial_matchZ	get_child�typerZLabelZset_propertyrrrHZget_adjustmentr:Z _Setup__hbox_emoji_partial_matchrzr{r|)rZcheckbutton_labelrqrur~rrrprZ__init_emoji$s������
���

�����������zSetup.__init_emojicCsp|j�d�|_|j�dtj�|j�d|j�|j�d�|_|j�dtj�|��|�	�|�
�|��dS)NZwindow_preferenceszdelete-eventznotify::windowZbutton_closer4)r'r7�_Setup__windowr:rZ	main_quit�_Setup__gdk_window_set_cbZ_Setup__button_close�_Setup__init_hotkeys�_Setup__init_panel�_Setup__init_general�_Setup__init_emojirrrrZ	__init_ui�szSetup.__init_uicCs<|��}t|�tjkrdSdtj�|�}t�d|d�dS)Nz%uZIBUS_SETUP_XIDT)Z
get_windowr�rZ	X11WindowZget_xidrZsetenv)r�objectZpspecZwindow�srrrZ__gdk_window_set_cb�s
zSetup.__gdk_window_set_cbcCs6|j��}|j�d�}|�|dko.||j��v�dS)NrN)rY�get_active_enginer'r7r\rP�get_engines)rZcombobox�property�enginer=rrrZ"__combobox_notify_active_engine_cb�s

�z(Setup.__combobox_notify_active_engine_cbcCs�g}|dkr|St|���}t|�dkrJ|��}|�dt�|d��|St|���}tj	d}|dkrt|ddnd|�d�d}t�
|�r�|�|�|�t�|��|S)NrrwZIBUS_LIBEXECDIR�/zibus-setup-�:)�strZ	get_setup�len�split�insertr	�basenamer[�os�environ�exists�append)rr�rR�setupr/Z
libexecdirZ
setup_pathrrrZ__get_engine_setup_exec_args�s"
�

z"Setup.__get_engine_setup_exec_argscCs�|jdvrdS|j��}|j��}|j�d��|dk�|j�d��|dk�|j�d��||dd�v�|j�d��||dd�v�|j�d�}t|�|��d	kr�|�d
�n
|�d�|jdkr�|j�	�}d
d�|D�}|j
�d|�dS)N)z
active-enginerfrOrVrTrwrU���rWrTFrfcSsg|]}|���qSr)r[)rJrdrrrrL�rMz.Setup.__treeview_notify_cb.<locals>.<listcomp>rI)r/rPZget_sorted_enginesr�r'r7r\r��"_Setup__get_engine_setup_exec_argsr�r�set_strv)rZtreeviewZproprfr�rmrerrrZ__treeview_notify_cb�s 





zSetup.__treeview_notify_cbcCsXt|jd�}|�|j�|��}|tjjkr8|��dS|�	�}|��|j
�|�dS)N)�
transient_for)rr�rZrX�runr�ResponseTypeZAPPLY�destroyZget_selected_enginerP�
append_engine)rr=�dialog�idr�rrrZ__button_engine_add_cb�szSetup.__button_engine_add_cbcCs|j��}|j�|�dSr)rYr�rPr�)rr=r�rrrZ __button_engine_add_cb_deprecate�s
z&Setup.__button_engine_add_cb_deprecatecCs0|j��}|r,t||jd�}|��|��dS)N)r�r�)rPr�rr�r�r�)rr=r�ZaboutrrrZ__button_engine_about_cb�s

zSetup.__button_engine_about_cbcCs�|j��}|�|�}t|�dkr$dS|��}|t|j���vr�z*t�	|j|tj
�\}}|dkrfWdSWntyzYn0|j|=tjtj
g|�R�|j|<dS)Nr)rPr�r�r�r[�listr`�keysr��waitpid�WNOHANG�OSError�spawnl�P_NOWAIT)rr=r�rRr/�wpid�stsrrrZ__button_engine_preferences_cb�s 

�
z$Setup.__button_engine_preferences_cbcsFt��|_|j��rdStd�}tjtjjtj	j
|d�}|��}|��|�
�|tjjkrft�d�t���d}t�|�fdd��|j�d�fdd��t�tjd	d	d
d����|j��r�td�}tjtjjtj	j|d�}|��}|��|�
�nFtd
�}tjtjjtj	j||d�}|��}|��|�
�t�d�dS)Nz8The IBus daemon is not running. Do you wish to start it?)�message_type�buttons�textr�cs���Sr��quitrQ�Z	main_looprrrSrMz"Setup.__init_bus.<locals>.<lambda>Z	connectedcs���Srr�rQr�rrrSrMzibus-daemonz--ximz--daemonizez�IBus has been started! If you cannot use IBus, add the following lines to your $HOME/.bashrc; then relog into your desktop.
  export GTK_IM_MODULE=ibus
  export XMODIFIERS=@im=ibus
  export QT_IM_MODULE=ibusz/IBus daemon could not be started in %d seconds.)rZBusr Zis_connectedrr�
MessageDialog�MessageTypeZQUESTION�ButtonsTypeZYES_NOr�r��_Setup__flush_gtk_eventsr�ZYES�sys�exitrZMainLoopZtimeout_add_secondsr:r��spawnlpr��INFO�OK)r�message�dlgr�Ztimeoutrr�rZ
__init_bus�sJ


�


�

�zSetup.__init_buscCs�td�tjjtd�tjjf}td�}td�}||}	tj|	|jd�}
|
j|�|�	�}|rf|�
d�}nd}|
�|�|
��}
|
�
�}|
��|
tjjkr�dS|dkr�|j�||�n|j�||�d�|�}|�|�d�|�}|dtd	�7}|�|�dS)
NZ_CancelZ_OKzSelect keyboard shortcut for %szswitching input methods)�titler�r2r5r3r+)rrr�ZCANCELr��keyboardshortcutZKeyboardShortcutSelectionDialogr�Zadd_buttonsZget_textr�Z
set_shortcutsr�Z
get_shortcutsr�rr�rr$r8r9)rr=r/Zsection�_namer>r�Ztitle1Ztitle2r�r�r�r<r�r?rrrZ__shortcut_button_clicked_cb/s<��




�z"Setup.__shortcut_button_clicked_cbc
Cs>|�|�}|�|t�}|tdkr�z|j�|t|t�Wn^ty�}zFt	j
t	jj|j
t	jjt|�d�}|��|��|��WYd}~dSd}~00n|z|j�|t|t�Wn`t�y}zFt	j
t	jj|j
t	jjt|�d�}|��|��|��WYd}~dSd}~00|t|t<|�|t|t�dS)NF)r�r�r�r�)�get_iter_from_stringrj�COLUMN_DATA�DATA_STARTEDr Zregister_start_engine�	DATA_LANG�	DATA_NAME�	Exceptionrr�r�ZERRORr�r�ZCLOSEr�r�r�r�Zregister_stop_engine�set�
COLUMN_ENABLE)r�cell�path_str�model�iter�datardr�rrrZ __item_started_column_toggled_cbOs:

�
�z&Setup.__item_started_column_toggled_cbcCs�|�|�}|�|t�}|t|t<d|t|tf}|trl||jvr�|j�|�|j�	dt
|j��n*||jvr�|j�|�|j�	dt
|j��|�|t
|t�dS)Nz%s:%srI)r�rjr��DATA_PRELOADr�r�Z_Setup__preload_engines�addrr�r��remover��COLUMN_PRELOAD)rr�r�r�r�r�r�rrrZ __item_preload_column_toggled_cbss 

�
�z&Setup.__item_preload_column_toggled_cbcGs|j��dSr)r�Zpresent)rrRrrrZ__sigusr1_cb�szSetup.__sigusr1_cbcCs&|j��t�tj|j�t��dSr)r�Zshow_all�signal�SIGUSR1�_Setup__sigusr1_cbr�mainrrrrr��s
z	Setup.run)N)�__name__�
__module__�__qualname__r�rr�r.r�r�r�r(r�rbr�rcr]r^r_rar!r;Z&_Setup__item_started_column_toggled_cbZ&_Setup__item_preload_column_toggled_cbr�r��
__classcell__rrr)rrRs,
DFk1 $r�__main__�zUsing the fallback 'C' locale)�file�Czxkeyboard-config)=Z
__future__rr�r�r��timeZgirZgi_require_versionZ
gi.repositoryrZset_prgnamerrrrr	Zi18nr�ZlocaleZ	emojilangr
ZenginecomboboxrZenginedialogrZenginetreeviewr
Zengineaboutrrrrr��rangeZCOLUMN_NAMEr�r�ZCOLUMN_VISIBLEZCOLUMN_ICONr�r�ZDATA_LOCAL_NAMEr�Z	DATA_ICONZDATA_AUTHORZDATA_CREDITSZ	DATA_EXECr�r�r�rr��	setlocale�LC_ALL�Errorr}�stderrZinit_textdomainr�r�rrrr�<module>sx





	
�
�D