+
    Qi4  c                  s@   R t ^ RIHt RtRtRtRtRt^ RIt^ RI	H
t
 ^ R	IHt R
t ^ RItRt^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt  ! R R]
4      t ! R R]
4      t]'       d   ^RIHt  ! R R4      t]! 4       tR R ltR#   ] d     Lpi ; i)z(Module for presenting system information)annotationsz$Id$z
$Revision$z$Date$zyCopyright (c) 2005-2008 Sun Microsystems Inc.Copyright (c) 2016-2024 Igalia, S.L.Copyright (c) 2024 GNOME Foundation Inc.ZLGPLN)Enum)TYPE_CHECKINGFT)cmdnames)dbus_service)debug)input_event)keybindings)messages)settings_managerc                  s   ] tR t^8tRt]P                  t]P                  t	]P                  t]P                  t]P                  t]P                   t]P$                  t]P(                  t]P,                  t]P0                  t]P4                  t]P8                  t]P<                  t]P@                  t!]PD                  t#]PH                  t%]&R R l4       t'Rt(R# )
DateFormatz9Date format enumeration with string values from messages.c                   V ^8  d   QhRR/#    returnstr Zformat   "F/usr/lib/python3.14/site-packages/orca/system_information_presenter.py__annotate__ZDateFormat.__annotate__M        ! !S !    c                6    V P                   P                  4       # z6Returns the lowercase string name for this enum value.ZnameZlowerself   &r   string_nameZDateFormat.string_nameL        yy  r   r   N))__name__
__module____qualname____firstlineno____doc__r   ZDATE_FORMAT_LOCALELOCALEZDATE_FORMAT_NUMBERS_DMZ
NUMBERS_DMZDATE_FORMAT_NUMBERS_MDZ
NUMBERS_MDZDATE_FORMAT_NUMBERS_DMYZNUMBERS_DMYZDATE_FORMAT_NUMBERS_MDYZNUMBERS_MDYZDATE_FORMAT_NUMBERS_YMDZNUMBERS_YMDZDATE_FORMAT_FULL_DMZFULL_DMZDATE_FORMAT_FULL_MDZFULL_MDZDATE_FORMAT_FULL_DMYZFULL_DMYZDATE_FORMAT_FULL_MDYZFULL_MDYZDATE_FORMAT_FULL_YMDZFULL_YMDZDATE_FORMAT_ABBREVIATED_DMZABBREVIATED_DMZDATE_FORMAT_ABBREVIATED_MDZABBREVIATED_MDZDATE_FORMAT_ABBREVIATED_DMYZABBREVIATED_DMYZDATE_FORMAT_ABBREVIATED_MDYZABBREVIATED_MDYZDATE_FORMAT_ABBREVIATED_YMDZABBREVIATED_YMDpropertyr   __static_attributes__r   r   r   r
   r
   8   s    C((F00J00J22K22K22K**G**G,,H,,H,,H88N88N::O::O::O! !r   r
   c                  s    ] tR t^RtRt]P                  t]P                  t	]P                  t]P                  t]P                  t]P                   t]P$                  t]R R l4       tRtR# )
TimeFormatz9Time format enumeration with string values from messages.c               r   r   r   r   r   r   r   ZTimeFormat.__annotate__^   r   r   c                r   r   r   r   r   r   r   ZTimeFormat.string_name]   r   r   r   N)r   r    r!   r"   r#   r   ZTIME_FORMAT_LOCALEr$   ZTIME_FORMAT_12_HMZ	TWELVE_HMZTIME_FORMAT_12_HMSZ
TWELVE_HMSZTIME_FORMAT_24_HMZTWENTYFOUR_HMZTIME_FORMAT_24_HMSZTWENTYFOUR_HMSZTIME_FORMAT_24_HM_WITH_WORDSZTWENTYFOUR_HM_WITH_WORDSZTIME_FORMAT_24_HMS_WITH_WORDSZTWENTYFOUR_HMS_WITH_WORDSr%   r   r&   r   r   r   r'   r'   R   sf    C((F**I,,J..M00N'DD ( F F! !r   r'   )defaultc                  s*   ] tR t^ftRtR R ltR&R R lltR'R R lltR R	 ltR
 R lt	R R lt
R R lt]P                  R R l4       t]P                  R R l4       t]P                  R R l4       t]P                  R R l4       t]P                  R R l4       t]P                  R R l4       t]P*                  R(R R ll4       t]P*                  R(R R  ll4       t]P*                  R(R! R" ll4       t]P*                  R(R# R$ ll4       tR%tR# ))SystemInformationPresenterz0Provides commands to present system information.c               r   r   r   ZNoner   r   r   r   r   'SystemInformationPresenter.__annotate__i   s     Q Q$ Qr   c                	s   V P                  R 4      V n        \        P                  ! 4       V n        Rp\
        P                  ! \
        P                  VR 4       \        P                  ! 4       pVP                  RV 4       R# )Tz9SYSTEM INFORMATION PRESENTER: Registering D-Bus commands.r)   N)get_handlers	_handlersr   KeyBindings	_bindingsr   print_message
LEVEL_INFOr   Zget_remote_controllerZregister_decorated_module)r   msgZ
controller   &  r   __init__Z#SystemInformationPresenter.__init__i   sa    CGCTCTUYCZ2=2I2I2KIE,,c48!779
,,-I4Pr   c               s$    V ^8  d   QhRRRRRR/# )r   refreshbool
is_desktopr   zkeybindings.KeyBindingsr   r   r   r   r   r+   r   s$      15	 r   c                sN   V'       dc   RV 2p\         P                  ! \         P                  VR4       V P                  P	                  R4       V P                  4        V P                  # V P                  P                  4       '       d   V P                  4        V P                  # )z5Returns the system-information-presenter keybindings.z?SYSTEM INFORMATION PRESENTER: Refreshing bindings. Is desktop: Tz2SYSTEM INFORMATION PRESENTER: Refreshing bindings.)r   r0   r1   r/   Zremove_key_grabs_setup_bindingsZis_empty)r   r5   r7   r2   s   &&& r   get_bindingsZ'SystemInformationPresenter.get_bindingsr   s    
 ST^S_`C 0 0#t<NN++,`a  " ~~ ^^$$&&  "~~r   c                    V ^8  d   QhRRRR/# )r   r5   r6   r   z(dict[str, input_event.InputEventHandler]r   r   r   r   r   r+      s      D 5] r   c                s    V'       d9   Rp\         P                  ! \         P                  VR4       V P                  4        V P                  # )z2Returns the system-information-presenter handlers.z2SYSTEM INFORMATION PRESENTER: Refreshing handlers.T)r   r0   r1   _setup_handlersr-   )r   r5   r2   s   && r   r,   Z'SystemInformationPresenter.get_handlers   s:     FC 0 0#t<  "~~r   c               r   r*   r   r   r   r   r   r+      s     9 9 9r   c                sD   / V n         \        P                  ! V P                  \        P
                  4      V P                   R&   \        P                  ! V P                  \        P                  4      V P                   R&   \        P                  ! V P                  \        P                  4      V P                   R&   \        P                  ! V P                  \        P                  4      V P                   R&   Rp\        P                  ! \        P                  VR4       R# )z>Sets up the system-information-presenter input event handlers.presentTimeHandlerpresentDateHandlerpresent_battery_statuspresent_cpu_and_memory_usagez.SYSTEM INFORMATION PRESENTER: Handlers set up.TN)r-   r   ZInputEventHandlerpresent_timer   ZPRESENT_CURRENT_TIMEpresent_dateZPRESENT_CURRENT_DATEr>   ZPRESENT_BATTERY_STATUSr?   ZPRESENT_CPU_AND_MEMORY_USAGEr   r0   r1   r   r2      & r   r;   Z*SystemInformationPresenter._setup_handlers   s      ))!!--/ 	+, ))!!--/ 	+, ))++//1 	/0 ))11557 	56
 ?E,,c48r   c               r   r*   r   r   r   r   r   r+      s     &9 &9 &9r   c           	     s   \         P                  ! 4       V n        V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^4      4       V P                  P                  \         P                  ! R\         P
                  \         P                  V P                  R,          ^4      4       Rp\        P                  ! \        P                  VR4       R	# )
z6Sets up the system-information-presenter key bindings.Ztr<   r=    r>   r?   z.SYSTEM INFORMATION PRESENTER: Bindings set up.TN)r   r.   r/   ZaddZ
KeyBindingZDEFAULT_MODIFIER_MASKZORCA_MODIFIER_MASKr-   r   r0   r1   rB   rC   r   r8   Z*SystemInformationPresenter._setup_bindings   sM    %002""11..34	 	""11..34	 	""11..78	 	""11..=>	 ?E,,c48r   c               r   r   r   r   r   r   r   r+           O O Or   c                J    \         P                  ! 4       P                  R4      # )z8Returns the current date format string for internal use.presentDateFormatr	   get_managerget_settingr   r   r   _get_date_format_stringZ2SystemInformationPresenter._get_date_format_string         ++-99:MNNr   c               r   r   r   r   r   r   r   r+      rE   r   c                rF   )z8Returns the current time format string for internal use.presentTimeFormatrH   r   r   r   _get_time_format_stringZ2SystemInformationPresenter._get_time_format_string   rL   r   c               r   r   r   r   r   r   r   r+             r   c                    \         P                  ! 4       P                  R4      p\         F"  pVP                  V8X  g   K  VP
                  u # 	  V# )z%Returns the current date format name.rG   )r	   rI   rJ   r
   valuer   r   Zstring_valuefmtr3   r   get_date_formatZ*SystemInformationPresenter.get_date_format   F     (335AABUVCyyL(&  r   c               r:   r   rQ   r   r   r6   r   r   r   r   r   r+            S T r   c                n    \         VP                  4       ,          pRT R2p\        P                  ! \        P                  TR4       \        P                  ! 4       P                  RTP                  4       R#   \         d0    RT 2p\        P                  ! \        P
                  TR4        R# i ; i)zSets the date format.z3SYSTEM INFORMATION PRESENTER: Invalid date format: TFz5SYSTEM INFORMATION PRESENTER: Setting date format to .rG   )r
   upperKeyErrorr   r0   LEVEL_WARNINGr1   r	   rI   set_settingrQ   r   rQ   rS   r2      &&  r   set_date_formatZ*SystemInformationPresenter.set_date_format       	U[[]+C FeWANE,,c48$$&223F		R  	GwOC 3 3S$?	   A: :6B43B4c               r   r   r   z	list[str]r   r   r   r   r   r+           7 7I 7r   c                J    \          Uu. uF  qP                  NK  	  up# u upi )z.Returns a list of available date format names.)r
   r   r   rS   rC   r   get_available_date_formatsZ5SystemInformationPresenter.get_available_date_formats        ,66:C:666    c               r   r   r   r   r   r   r   r+      rO   r   c                rP   )z%Returns the current time format name.rM   )r	   rI   rJ   r'   rQ   r   rR   r3   r   get_time_formatZ*SystemInformationPresenter.get_time_format   rU   r   c               r:   rV   r   r   r   r   r   r+     rW   r   c                rX   )zSets the time format.z3SYSTEM INFORMATION PRESENTER: Invalid time format: TFz5SYSTEM INFORMATION PRESENTER: Setting time format to rY   rM   )r'   rZ   r[   r   r0   r\   r1   r	   rI   r]   rQ   r^   r_   r   set_time_formatZ*SystemInformationPresenter.set_time_format  ra   rb   c               r   rc   r   r   r   r   r   r+     rd   r   c                re   )z.Returns a list of available time format names.)r'   r   rf   rC   r   get_available_time_formatsZ5SystemInformationPresenter.get_available_time_formats  rh   ri   Nc               (    V ^8  d   QhRRRRRRRR/# r   scriptzdefault.Scripteventzinput_event.InputEvent | Nonenotify_userr6   r   r   r   r   r   r   r+     2       - 	
 
r   c                    RVRVRV.p\         P                  ! \         P                  VR4       V P                  4       pVP	                  \
        P                  ! V\
        P                  ! 4       4      4       R# )zPresents the current time.z3SYSTEM INFORMATION PRESENTER: present_time. Script:Event:notify_user:T)r   print_tokensr1   rN   present_messagetimestrftime	localtime)r   ro   rp   rq   tokensZtime_format   &&&&  r   r@   Z'SystemInformationPresenter.present_time  d     HE>;@5++VT:224t}}[$..:JKLr   c               rm   rn   r   r   r   r   r   r+   +  rr   r   c                rs   )zPresents the current date.z3SYSTEM INFORMATION PRESENTER: present_date. Script:rt   ru   T)r   rv   r1   rK   rw   rx   ry   rz   )r   ro   rp   rq   r{   Zdate_formatr|   r   rA   Z'SystemInformationPresenter.present_date*  r}   r   c               rm   rn   r   r   r   r   r   r+   <  s2       - 	
 
r   c                s4   RVRVRV.p\         P                  ! \         P                  VR4       \        '       d   \        P
                  ! 4       '       g"   VP                  \        P                  4       R# \        P
                  ! 4       pVP                  '       d6   \        P                  VP                  ,           R\        P                   2pM4\        P                  VP                  ,           R\        P                   2pVP                  V4       R# )zPresents the battery status.z=SYSTEM INFORMATION PRESENTER: present_battery_status. Script:rt   ru   TZ )r   rv   r1   _PSUTIL_AVAILABLEpsutilZsensors_batteryrw   r   ZBATTERY_STATUS_UNKNOWNZpower_pluggedZBATTERY_LEVELpercentZBATTERY_PLUGGED_IN_TRUEZBATTERY_PLUGGED_IN_FALSE)r   ro   rp   rq   r{   Zbatteryr2   s   &&&&   r   r>   Z1SystemInformationPresenter.present_battery_status;  s     RSYE>;@5++VT:!!f&<&<&>&>""8#B#BC((*   ++goo=>a@`@`?abC++goo=>a@a@a?bcCs#r   c               rm   rn   r   r   r   r   r   r+   V  s2       - 	
 
r   c                s   RVRVRV.p\         P                  ! \         P                  VR4       \        '       g"   VP	                  \
        P                  4       R# \        \        P                  ! 4       4      p\        P                  ! 4       p\        VP                  4      pVP                  R8  d;   \
        P                  ! VP                  R,          VP                  R,          4      pM9\
        P                  ! VP                  R,          VP                  R,          4      p\
        P                   WW3,           RV 2p	VP	                  V	4       R# )z"Presents the cpu and memory usage.zCSYSTEM INFORMATION PRESENTER: present_cpu_and_memory_usage. Script:rt   ru   Tz. i   @i   )r   rv   r1   r~   rw   r   ZCPU_AND_MEMORY_USAGE_UNKNOWNZroundr   Zcpu_percentZvirtual_memoryr   ZtotalZmemory_usage_gbZusedZmemory_usage_mbZCPU_AND_MEMORY_USAGE_LEVELS)
r   ro   rp   rq   r{   Z	cpu_usageZmemoryZmemory_percentZdetailsr2   s
   &&&&      r   r?   Z7SystemInformationPresenter.present_cpu_and_memory_usageU  s    XY_E>;@5++VT:  ""8#H#HI&,,./	&&(fnn-<<)#..y)6<<9+EGG ..y)6<<9+EGG 558SSTTVW^V_`s#r   )r/   r-   )FT)F)NT)r   r    r!   r"   r#   r4   r9   r,   r;   r8   rK   rN   r   ZgetterrT   Zsetterr`   rg   rj   rk   rl   Zcommandr@   rA   r>   r?   r&   r   r   r   r)   r)   f   s0   :Q98&9PO
O
     7 7
     7 7
        2  r   r)   c               r   )r   r   r)   r   r   r   r   r   r   w  s      1 r   c                 s    \         # )z3Returns the system-information-presenter singleton.)
_presenterr   r   r   get_presenterr   w  s
     r   )r#   Z
__future__r    Z__id__Z__version__Z__date__Z__copyright__Z__license__rx   Zenumr   Ztypingr   r~   r   ZModuleNotFoundErrorrD   r   r   r   r   r   r   r	   r
   r'   Zscriptsr(   r)   r   r   r   r   r   <module>r      s   0 / #;      	       ! !4! !"  M M` ()
U
  		s   B BB