
    EgK                         d dl mZmZmZmZ d dlZd dlZd dlZd dlZ	d dl
Z
d dlZd Zd Zd Zd Zd Zd Zd	 Zdd
Zd Zd Zd Zd Zd Zd Zd Zy)    )GLibGioGdkGtkNc                     	 t        j                  | ddd      }|S #  	 t        j                  | d      \  }}}Y |S #  | }Y Y |S xY wxY w)Nr   )r   locale_to_utf8)stringretbrbws       -/usr/share/cinnamon-screensaver/util/utils.pynofail_locale_to_utf8r      s_    !!&"a3 J	--fb9KCR J	CJs    A<A AAc                  L    t        j                         } d }| rt        |       }|S N)r   get_user_namer   name	utf8_names     r   r   r      (    DI)$/	    c                  n    t        j                         } | r| dk(  r
t               } d }| rt        |       }|S )NUnknown)r   get_real_namer   r   r   s     r   get_user_display_namer   #   s9    D49$I)$/	r   c                  L    t        j                         } d }| rt        |       }|S r   )r   get_host_namer   r   s     r   r   r   0   r   r   c                     t         j                  syt               } 	 t        j                  d      }| |j
                  v ry	 t        j                  j                         st        j                  j                         ryy# t        $ r Y Iw xY w)NFnopasswdloginT)statusLockEnabledr   grpgetgrnamgr_memKeyErrorxapposis_live_sessionis_guest_session)r   groups     r   user_can_lockr+   :   sw    ?D_-5<<   ww DGG$<$<$>  s   #B   	BBc                 z    d}	 t        j                  d| g      }|dk7  S # t         j                  $ r Y |dk7  S w xY w)N pidof)
subprocesscheck_outputCalledProcessError)r   ress     r   process_is_runningr3   N   sP    
C%%wo6 "9 (( "9s     ::c                  6    t        j                  t               y r   )r   idle_adddo_user_switch_timeout r   r   do_user_switchr8   X   s    MM()r   c                    t        d      rddz  }t        j                  j                         j	                         }t
        j                  j                  |dt
        j                  j                        }|r|j                  d |       y y t        d      rddz  }t        j                  j                         j	                         }t
        j                  j                  |dt
        j                  j                        }|r|j                  d |       y y t        d      r{t        j                  j                         j	                         }t
        j                  j                  dd t
        j                  j                        }|r|j                  d |       y y t        j                  d	      t	 t        j                  t
        j                  j                  d       }|j!                  d
t        j                  d	      ddd d t
        j"                  j                  dd 	       y y # t$        j&                  $ r"}t)        d|j*                  z          Y d }~y d }~ww xY w)Nmdmz%s %s)mdmflexiserver--startnew Standardr;   gdm)gdmflexiserverr<   r>   gdm3XDG_SEAT_PATHzorg.freedesktop.DisplayManagerz#org.freedesktop.DisplayManager.SeatSwitchToGreeterr   zSwitch user failed: )r3   r   Displayget_defaultget_app_launch_contextr   AppInfocreate_from_commandlineAppInfoCreateFlagsNONElaunchr'   getenvbus_get_syncBusTypeSYSTEM	call_syncDBusCallFlagsr   Errorprintmessage)datacommandctxappbuserrs         r   r6   r6   [   s   % EEkk%%'>>@kk11';KSMcMcMhMhiJJtS! 	E	"EEkk%%'>>@kk11';KSMcMcMhMhiJJtS! 	F	#kk%%'>>@kk112BD#J`J`JeJefJJtS! 	?	#	/	8""3;;#5#5t<CMM:))O4?+++00  
0 zz 	8(3;;677	8s   3A2H' 'I:IIc                  ^    dt        j                  d      v rt        j                  d      ryy)NcinnamonDESKTOP_SESSIONzcinnamon-session-quitTF)r   rJ   find_program_in_pathr7   r   r   session_is_cinnamonr]      s)    T[[!233$$%<=r   c                 N    t        j                         }| j                  |       y r   )r   get_current_event_timeset_user_time)windowev_times     r   override_user_timerc      s    ((*G
!r   c                 x    t        d| j                  | j                  | j                  | j                  fz         y )Nzx:%d, y:%d, width:%d, height:%d)rQ   xywidthheight)allocs    r   debug_allocationrj      s)    	
+uwwell.[
[\r   c                 .    t        |t        | |            S r   )maxmin)valuelowhighs      r   CLAMPrq      s    sCt$%%r   c                    | j                  t        j                        }|j                          |j	                  dd       | j                  t        j
                        }|j                          |j	                  dd       y )Nr-   r   )get_clipboardr   SELECTION_PRIMARYclearset_textSELECTION_CLIPBOARD)widget	clipboards     r   clear_clipboardsrz      sb    $$S%:%:;IOOr2$$S%<%<=IOOr2r   c                  ,    t        j                          y r   )r   	main_quitr7   r   r   do_quitr}      s    MMOr   c                 @    t         j                  rt        | d       y y )NT)flush)r    DebugrQ   )rR   s    r   DEBUGr      s    ||gT" r   r   )gi.repositoryr   r   r   r   r'   r"   r/   xapp.osr&   configr    r   r   r   r   r+   r3   r8   r6   r]   rc   rj   rq   rz   r}   r   r7   r   r   <module>r      sl    . - 	 
    	(*#8J"
]&#r   