
    ?g                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlZ ej                  dd       d dl
mZmZmZ d dlmZmZ d dlmZ d d	lmZ d d
l  e j,                  dd       dZdZdZdZdZdZdZ ej<                   ej>                         d      Z  ej<                   ej>                         d      Z!ejD                  jF                  ejD                  jH                  ejD                  jJ                  ejD                  jL                  gZ' e(d      dddg e(d      dddg e(d      dddg e(d      dddg e(d      d ddg e(d!      d"ddg e(d#      d$ddg e(d%      d&dd'g e(d(      d)d&dg e(d*      d+dd,g e(d-      d.d+dg e(d/      d0d+dg e(d1      d2dd3g e(d4      d5dd6g e(d7      d8d5dg e(d9      d:dd;g e(d<      d=dd>g e(d?      d@ddg e(dA      dBddggZ)g  e(dC      edDdg e(dE      edFdg e(dG      edHdg e(dI      edJdg e(dK      edLdg e(dM      edNdg e(dO      edPdg e(dQ      edRdg e(dS      edTdg e(dU      edVdg e(dW      edXdg e(dY      edZdg e(d[      ed\d@g e(d]      ed^d@g e(d_      ed`dg e(da      edbdg e(dc      edddg e(de      edfdg e(dg      edhdg e(di      edjdg e(dk      edldg e(dm      edndg e(do      edpdg e(dq      edrdg e(ds      edtdg e(du      edvdg e(dw      edxdg e(dy      edzdg e(d{      ed|dg e(d}      ed~dg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      eddg e(d      edd g e(d      edd g e(d      edd g e(d      edd g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd"g e(d      edd$g e(d      edd$g e(dë      edd$g e(dū      edd$g e(dǫ      edd&g e(dɫ      edd&g e(d˫      edd)g e(dͫ      edd)g e(dϫ      edd)g e(dѫ      edd)g e(dӫ      edd)g e(dի      edd)g e(d׫      edd)g e(d٫      edd)g e(d۫      edd)g e(dݫ      edd)g e(d߫      edd)g e(d      edd)g e(d      edd+g e(d      edd+g e(d      edd+g e(d      edd+g e(d      edd+g e(d      edd+g e(d      edd0g e(d      edd0g e(d      edd0g e(d      edd0g e(d      edd0g e(d      edd0g e(d      edd0g e(d      edd.g e(d      ed d.g e(d      edd.g e(d      edd.g e(d      edd.g e(d      edd.g e(d	      ed
d.g e(d      edd.g e(d      edd.g e(d      edd.g e(d      edd.g e(d      edd.g e(d      edd2g e(d      edd2g e(d      edd2g e(d      edd2g e(d      edd2g e(d      ed d2g e(d!      ed"d2g e(d#      ed$d5g e(d%      ed&d5g e(d'      ed(d5g e(d)      ed*d5g e(d+      ed5d5g e(d,      ed-d5g e(d.      ed/d5g e(d0      ed1d5g e(d2      ed3d5g e(d4      ed5d5g e(d6      ed7d5g e(d8      ed9d5g e(d:      ed;d5g e(d<      ed=d5g e(d>      ed?d5g e(d@      edAd8g e(dB      edCd8g e(dD      edEd8g e(dF      edGd:g e(dH      edId:g e(dJ      edKd:g e(dL      edMd:g e(dN      edOd:g e(dP      edQd:g e(dR      edSd:gZ*dTZ+dU Z, G dV dW      Z- G dX dY      Z. G dZ d[      Z/ G d\ d]      Z0 G d^ d_ejb                        Z2y(`      N)Path)escapeGtkz3.0)GdkGior   )ButtonKeybindingCellRendererKeybinding)SidePage)util)*cinnamonz/usr/share/localez org.cinnamon.desktop.keybindingsz4/org/cinnamon/desktop/keybindings/custom-keybindingsz2org.cinnamon.desktop.keybindings.custom-keybindingz#org.cinnamon.desktop.keybindings.wmz+org.cinnamon.desktop.keybindings.media-keyszorg.cinnamonz.cinnamon/configs/z.config/cinnamon/spices/Generalgeneralz&preferences-desktop-keyboard-shortcutsTroubleshootingtroubleWindowswindowszpreferences-system-windowsPositioningzwin-positionzTiling and Snappingz
win-tilingzInter-workspacezwin-workspaceszInter-monitorzwin-monitors
Workspaces
workspaceszvideo-displayzDirect Navigationzws-naviSystemsystemzpreferences-systemHardwarezsys-hwzScreenshots and Recordingz
sys-screen	Launchers	launcherszapplications-utilitieszSound and Mediamediazapplications-multimediaz
Quiet Keyszmedia-quietzUniversal Accessaccessibilityz!preferences-desktop-accessibilityCustom Shortcutscustomzcinnamon-panel-launcherPointerpointerSpicesspicesz Show the window selection screenzswitch-to-workspace-downz#Show the workspace selection screenzswitch-to-workspace-upzShow desktopzshow-desktopzShow Deskletszshow-deskletszCycle through open windowszswitch-windowsz$Cycle backwards through open windowszswitch-windows-backwardz)Cycle through windows from all workspaceszswitch-panelsz3Cycle backwards through windows from all workspaceszswitch-panels-backwardz2Cycle through open windows of the same applicationzswitch-groupz<Cycle backwards through open windows of the same applicationzswitch-group-backwardz
Run dialogzpanel-run-dialogzToggle Looking Glasszlooking-glass-keybindingz Move pointer to the next monitorzpointer-next-monitorz$Move pointer to the previous monitorzpointer-previous-monitorzMaximize windowmaximizezUnmaximize window
unmaximizezMinimize windowminimizezClose windowclosezActivate window menuzactivate-window-menuzRaise windowraisezLower windowlowerzToggle maximization stateztoggle-maximizedzToggle fullscreen stateztoggle-fullscreenzToggle shaded stateztoggle-shadedzToggle always on topztoggle-abovez'Toggle showing window on all workspacesztoggle-on-all-workspaceszIncrease opacityzincrease-opacityzDecrease opacityzdecrease-opacityzToggle vertical maximizationzmaximize-verticallyzToggle horizontal maximizationzmaximize-horizontallyzResize windowzbegin-resizezMove windowz
begin-movezCenter window in screenzmove-to-centerzMove window to upper-rightzmove-to-corner-nezMove window to upper-leftzmove-to-corner-nwzMove window to lower-rightzmove-to-corner-sezMove window to lower-leftzmove-to-corner-swzMove window to right edgezmove-to-side-ezMove window to top edgezmove-to-side-nzMove window to bottom edgezmove-to-side-szMove window to left edgezmove-to-side-wzPush tile leftzpush-tile-leftzPush tile rightzpush-tile-rightzPush tile upzpush-tile-upzPush tile downzpush-tile-downzMove window to new workspacezmove-to-workspace-newzMove window to left workspacezmove-to-workspace-leftzMove window to right workspacezmove-to-workspace-rightzMove window to workspace abovezmove-to-workspace-upzMove window to workspace belowzmove-to-workspace-downzMove window to workspace 1zmove-to-workspace-1zMove window to workspace 2zmove-to-workspace-2zMove window to workspace 3zmove-to-workspace-3zMove window to workspace 4zmove-to-workspace-4zMove window to workspace 5zmove-to-workspace-5zMove window to workspace 6zmove-to-workspace-6zMove window to workspace 7zmove-to-workspace-7zMove window to workspace 8zmove-to-workspace-8zMove window to workspace 9zmove-to-workspace-9zMove window to workspace 10zmove-to-workspace-10zMove window to workspace 11zmove-to-workspace-11zMove window to workspace 12zmove-to-workspace-12zMove window to left monitorzmove-to-monitor-leftzMove window to right monitorzmove-to-monitor-rightzMove window to monitor abovezmove-to-monitor-upzMove window to monitor belowzmove-to-monitor-downzSwitch to left workspacezswitch-to-workspace-leftzSwitch to right workspacezswitch-to-workspace-rightzSwitch to workspace 1zswitch-to-workspace-1zSwitch to workspace 2zswitch-to-workspace-2zSwitch to workspace 3zswitch-to-workspace-3zSwitch to workspace 4zswitch-to-workspace-4zSwitch to workspace 5zswitch-to-workspace-5zSwitch to workspace 6zswitch-to-workspace-6zSwitch to workspace 7zswitch-to-workspace-7zSwitch to workspace 8zswitch-to-workspace-8zSwitch to workspace 9zswitch-to-workspace-9zSwitch to workspace 10zswitch-to-workspace-10zSwitch to workspace 11zswitch-to-workspace-11zSwitch to workspace 12zswitch-to-workspace-12zLog outlogoutz	Shut downshutdownzLock screenscreensaverSuspendsuspend	Hibernate	hibernatezRestart Cinnamonzrestart-cinnamonzTake a screenshot of an areazarea-screenshotz)Copy a screenshot of an area to clipboardzarea-screenshot-clipzTake a screenshot
screenshotzCopy a screenshot to clipboardzscreenshot-clipzTake a screenshot of a windowzwindow-screenshotz*Copy a screenshot of a window to clipboardzwindow-screenshot-clipz0Toggle recording desktop (must restart Cinnamon)ztoggle-recordingzSwitch monitor configurationszswitch-monitorzRotate displayzrotate-monitorzOrientation Lockzvideo-rotation-lockzIncrease screen brightnesszscreen-brightness-upzDecrease screen brightnesszscreen-brightness-downzToggle keyboard backlightzkbd-brightness-togglez!Increase keyboard backlight levelzkbd-brightness-upz!Decrease keyboard backlight levelzkbd-brightness-downzToggle touchpad stateztouchpad-togglezTurn touchpad onztouchpad-onzTurn touchpad offztouchpad-offzShow power statisticsbatteryzLaunch terminalterminalzLaunch help browserhelpzLaunch calculator
calculatorzLaunch email clientemailzLaunch web browserwwwzHome folderhomeSearchsearchzVolume mutezvolume-mutezVolume downzvolume-downz	Volume upz	volume-upzMic mutezmic-mutezLaunch media playerPlayplayzPause playbackpausezStop playbackstopzPrevious trackpreviousz
Next tracknextEjectejectRewindzaudio-rewindzFast-forwardzaudio-forwardRepeatzaudio-repeatShufflezaudio-randomzVolume mute (Quiet)z
mute-quietzVolume down (Quiet)zvolume-down-quietzVolume up (Quiet)zvolume-up-quietzZoom inzmagnifier-zoom-inzZoom outzmagnifier-zoom-outzTurn screen reader on or offscreenreaderz!Turn on-screen keyboard on or offzon-screen-keyboardzIncrease text sizezincrease-text-sizezDecrease text sizezdecrease-text-sizezHigh contrast on or offztoggle-contrast	__dummy__c                 j    t         | v r| j                  t                y | j                  t                y N)DUMMY_CUSTOM_ENTRYremoveappend)custom_lists    </usr/share/cinnamon/cinnamon-settings/modules/cs_keyboard.pyensureCustomListChangesrO      s(    [(-.-.    c                       e Zd Z ed      ZdZdZd Zd Zd!dZ	d!dZ
d	 Zd!d
Zd Zd Zd!dZd!dZd Zd 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!d  Z"y)"Modulez&Manage keyboard settings and shortcutskeyboardhardwarec                    t        d      }t        t        d      d|||       }|| _        d | _        d | _        d | _        d| _        i | _        g | _        d | _	        d | _
        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d| _        d| _        y )Nzkeyboard, shortcut, hotkeyKeyboardzcs-keyboard)moduleF	shortcuts )_r
   sidePagecurrent_categorylast_selected_categorylast_selected_bindingloadedbinding_categories
main_store	cat_storekb_root_storekb_storeentry_storecat_treekb_tree
entry_treecolor_foundplaceholder_rgbakb_search_entrykb_search_handler_idadd_custom_buttonremove_custom_buttonsearch_choicelast_accel_string)selfcontent_boxkeywordsr[   s       rN   __init__zModule.__init__   s    12AjM=(KX\]  $&*#%)""$! $#$(!!%$(!(!#rP   c                 <   | j                   st        d       t               | j                  _        | j                  j                  | j                  j                         t               }|j                  t        d            }| j                  j                  j                  |dt        d             t        t        d      dd      }|j                  |       t        t        d      dd	t        d
      t        d      ddd      }|j                  |dd       t        t        d      ddt        d      t        d      ddddd
      }|j                  |dd       |j                  t        d            }t        t        d      dd      }|j                  |       t        t        d      ddt        d      t        d      dddd	      }|j                  |dd       t        j                  t        j                   j"                        }|j%                  d        |j'                  d        | j                  j                  j                  |d!t        d"             | j                  j                  j)                  d#| j*                         t        j                  j-                  t        j                   j"                  d$      }t        j                  j-                  t        j                   j.                  d$      }|j1                  |ddd$       |j3                  t        j4                  j-                  t        d%            ddd&       t        j6                  t        j                   j.                        }|j9                  d       t        j                  j-                  t        j                   j"                  d$      }	t        j                  j-                  t        j                   j"                  d$      }
t        j                  j-                  t        j                   j.                  d$      | _        |j=                  |	       t        j                  t        j                   j"                        }|j?                  |       t        j@                  t        d'      (      | _!        | jB                  j)                  d)| jD                        | _#        t        jH                         | _%        | jJ                  jM                  t        jN                  jP                         | jJ                  jS                         }|jU                  d*       |jW                  d+      \  | _,        | _-        | jJ                  j]                  d       t_               | _0        | j`                  jc                  t        jd                  jf                         d| j`                  jh                  _5        t        d,      }| j`                  jm                  |       t        d-      }|| j`                  jh                  _7        | jX                  r0| j`                  jh                  jq                  d.| jZ                         | j`                  j)                  d/| jr                         | j`                  j)                  d0| jt                         | jJ                  jw                  | j`                         t        jx                         | _=        t        d"      d!ft        d1      d2fg}t        j|                  t~        t~              }|D ]  }|j                  |        | jz                  j                  |       t        j                         }| jz                  j1                  |d       | jz                  j                  |d3d4       | jz                  j                  d4       | jz                  j)                  d)| j                         | j:                  j1                  | jB                  ddd$       | j:                  j1                  | jJ                  ddd$       | j:                  j3                  | jz                  ddd$       |j1                  | j:                  ddd$       t        j                  j-                  d d       }|j                  t        j                  j                  t        j                  j                         |jw                  |
       |j1                  |ddd$       t        j                  j-                  d d       }|jM                  t        jN                  jP                         t        j                  j-                  d d       }|jM                  t        jN                  jP                         t        j                  j-                  d d       }|jM                  t        jN                  jP                         |
j1                  |ddd$       |
j1                  |ddd$       |jq                  d5d6       t        j                  dd78      | _L        t        j                  dd78      | _M        t        j                  dd78      | _N        | j                  j)                  d9| j                         | j                  j)                  d:| j                         | j                  j)                  d;| j                         | j                  j)                  d<| j                         | j                  j)                  d=| j                         | j                  j)                  d>| j                         | j                  j)                  d?| j                         | j                  j)                  d@| j                         | j                  j)                  d=| j                         | j                  j)                  d?| j                         |	j1                  |ddd$       |jw                  | j                         |j                  t        j                  j                  t        j                  j                         |jw                  | j                         |j                  t        j                  j                  t        j                  j                         |jw                  | j                         |j                  t        j                  j                  t        j                  j                         t        j                  j-                  t        j                   j.                        }t        j                  j                  t        dA            | _W        | j                  j)                  dB| j                         t        j                  j                  t        dC            | _Y        | j                  j)                  dB| j                         | j                  jq                  dDd       |j1                  | j                  ddd$       |j1                  | j                  ddd$       |
j3                  |ddd$       |j1                  |ddd$       t        j                  t~        t~        t              | _]        t        j|                  t~        t              | _^        t        j                  | j                  E      | _`        | j                  j                  | j                         t        j|                  t~              | _c        t        j                         }|j                  d4d4       t        j                         }t        j                  t        dF            }|j1                  |d       |j1                  |d       |j                  |dGd4       |j                  |d3d&       |j                  d4       |jq                  dHdI       | j                  j                  |       | j                  j)                  dJ| j                         | j                  j)                  d:| j                         | j                  j)                  d;| j                         | j                  j)                  d9| j                         | j                  j)                  d<| j                         | j                  j)                  d=| j                         | j                  j)                  d>| j                         | j                  j)                  d@| j                         t        j                         }|j                  dKdK       t        j                  t        dL      |d4M      }|j                  || j                         |j                  dK       | j                  j                  |       | j                  j)                  dJ| j                         t        | j                        }|j                  dKdK       |j)                  d/| j                  | j                         |j)                  d0| j                  | j                         |jq                  dNd       t        j                  t        dO      |d4P      }|j)                  dB| j                         |j                  dK       | j                  j                  |       | j                  jm                  t        j                         d | _t        g | _u        t        j                  j-                  t              }t               }t               }|j                  dQ      D ])  } | j                  dR      dS   }!|jw                  |!dTf       + |j                  dU      D ])  }"|"j                  dR      d4   }#|jw                  |#dVf       + |j                  dW      D ]&  }$|jw                  |$       |jw                  |$dXf       ( t        |      }%i }&i }'|%D ]E  \  }(})t        t        fD ]/  }*t        j                   |*|(      }+t        j                  |+      s2t        j                  |+      D ,cg c]  },|,j	                  dY      s|, }-},t        dZ |-D              s]t        d[ |-D              rJt        |-      D ];  \  }.}/|/j                  dY      d4   j                         r*|-j                  |.       = |-D ]Q  }0t        j                   |+|0      }1|0j                  dY      d4   }2|2j                         r|( d\|2 n|(}3t        |1d]^      5 }4t        j                  |4      }5|5j                         D ]  \  }6}7t        |7t              s|7j!                  d_      d`k(  s/|'j#                  |3i        |(|v|'|3   da<   t        |1      |'|3   db<   |)|'|3   d_<   |&j#                  |3i        |&|3   j#                  |6i        |7j!                  dc      |7j!                  dd      j                  de      i|&|3   |6<    	 d d d        T 2 H |&j                         D ]  \  }(}8|(j                         ^}9}2|(|'|(   i}:|'|(   d_   })df|9v rDt        dg|) dh|9 did]^      5 };t        j                  |;      }<t        |<dj         }=d d d        nt        j$                  j'                  dk      }>t)        j*                  |9|> dl       t)        j,                  |9       	 t        |> dm|) dh|9 did]^      5 };t        j                  |;      }<t)        j(                  t        |<dj               }=d d d        |2s$=r|=n|9}?t0        j                  |?|9dnd |:g       d&}@n|9t0        d7   d$   k7  rW=r|=n|9}?t0        j                  |?|9dnd d g       d&}@t        do      d\|@ z   }At0        j                  |A|9 dp|@ |9d |:g       d$}@nF|9t0        d7   d$   k(  r6t        do      d\@ z   }At0        j                  |A|9 dp|@ |9d |:g       |@d&z  }@|'|(   da   du r|(nd }:|8j                         D ]  \  }B}Cdf|9v r(t        t3        Cj5                               d4         }Dnt        j$                  j'                  dk      }>t)        j*                  |9|> dl       t)        j,                  |9       t)        j(                  t3        Cj5                               d4         }D|'|(   db   }E|2r
|9 dp@d&z
   n|9}Ft6        j                  DEB|F|:g       =| j8                  |F<     i }Gt0        D ]X  }H|Hd4   G|Hd&   <   d }It;        |H      dqkD  rHdq   }I| j                  j                  t=        Hd4   |Hd&   |Hd$   |HdS   I             Z t6        D ]  }J| j8                  j#                  |JdS   G|JdS             | j                  D ]W  }K|Kj>                  JdS   k(  sd }It;        J      dqkD  rJdq   }IKjw                  tA        Jd4   |Jd&   |Jd$   |JdS   I             Y  i }Ld\}M| j                  D ]K  }K|KjB                  s*| j                  j                  d       LKj>                  <   n7| j                  j                  LKjB                           |L|Kj>                  <   KjD                  r7| j                  jG                  LKj>                     d4|KjD                         | j                  jG                  LKj>                     d&|KjH                         | j                  jG                  |L|Kj>                     d$|K       t;        |KjH                        t;        M      kD  s?KjH                  }MN | j                  jK                  M      }N|NjM                         ^}O}P|jO                  tQ        |OdI             | j                  j                  | j                         | j                  j                  | j                         | j                  j                  | j                         | jS                          |j1                  |ddd4       t        j                  t        j                   j"                        }|j%                  d        |j'                  d        tU        jV                         drk7  r| j                  j                  j                  |dst        dt             	 | j                  jX                  jZ                  j]                  du      }QQrt        j                  j-                  t        j                   j"                  d$      }R|Rj1                  Qddd$       |Rj_                  d       |Qja                          |j1                  |Rddd4       | jB                  jc                          y y c c},w # 1 sw Y   	5xY w# 1 sw Y   xY w# 1 sw Y   xY w# t.        $ r Y w xY w#  d }QY xY w)vNzLoading Keyboard modulez
Key repeattypingTypingzEnable key repeatz)org.cinnamon.desktop.peripherals.keyboardrepeatzRepeat delay:delayShortLongd   i  F)
show_valuezRepeat speed:zrepeat-intervalSlowFast   T)logr}   flippedzText cursorzText cursor blinkszorg.cinnamon.desktop.interfacezcursor-blinkzBlink speed:zcursor-blink-timei	  )r}   r   )orientation   rX   	Shortcutsznotify::visible-child-name   z\To edit a keyboard binding, click it and press the new keys, or press backspace to clear it.   zType to search shortcuts)placeholder_textchangedviewplaceholder_text_colorz"Press Escape to cancel the search.zClick to search by acceleratorforeground-rgbazaccel-editedzaccel-clearedBindingsbindingstextr   zmin-content-height   )enable_searchsearch_columnzrow-activatedzbutton-release-eventzkey-release-eventmapzfocus-in-eventunmapzfocus-out-eventdestroyAdd custom shortcutclickedzRemove custom shortcut	sensitive)child_model
Categoriesz	icon-namez	min-width   zcursor-changedg      ?zKeyboard shortcuts)r   editablezKeyboard bindings)accel_stringzenabled-applets:   appletszenabled-deskletsdeskletszenabled-extensions
extensions.jsonc              3   `   K   | ]&  }|j                  d       d   j                          ( ywr   r   Nsplitisdigit.0xs     rN   	<genexpr>z,Module.on_module_selected.<locals>.<genexpr>  s'     "RQ1777#3A#6#>#>#@"R   ,.c              3   `   K   | ]&  }|j                  d       d   j                          ( ywr   r   r   s     rN   r   z,Module.on_module_selected.<locals>.<genexpr>  s5       [K}~[\[b[bcj[klm[n[v[v[x  [Kr    utf-8encodingtype
keybinding	highlightpathdescriptionvalue::z@cinnamon.orgz/usr/share/cinnamon//z/metadata.jsonname~z/.local/share/localez/.local/share/cinnamon/r#   InstancerZ      waylandlayoutsLayoutsregion)r_   printSettingsStackr[   stack
add_widgetSettingsPageadd_sectionrZ   
add_titledGSettingsSwitchadd_rowGSettingsRangeadd_reveal_rowr   BoxOrientationVERTICALset_border_widthset_spacingconnectstack_page_changednew
HORIZONTAL
pack_startpack_endLabelPanedset_wide_handlesearch_vboxadd1add2Entryrk   on_kb_search_changedrl   Framekb_search_frameset_shadow_type
ShadowTypeINget_style_context	add_classlookup_colorri   rj   set_no_show_allr   kb_search_binding
set_valignAlignCENTERkeybinding_celldefault_valueset_tooltip_texttext_stringset_propertyonSearchBindingChangedonSearchBindingClearedaddComboBoxkb_search_type	ListStorestrrL   	set_modelCellRendererTextadd_attribute
set_activeon_kb_search_type_changedScrolledWindow
set_policy
PolicyType	AUTOMATICNEVERTreeViewrf   rg   rh   onCustomKeyBindingEditedonContextMenuPopupbindingHighlightOnMapbindingHighlightOnUnmapbindingHighlightOff	ButtonBoxButtonnew_with_labelrm   onAddCustomButtonClickedrn   onRemoveCustomButtonClicked	TreeStoreobjectrb   rc   TreeModelFilterrd   set_visible_funckb_store_visible_funcre   set_alignmentCellRendererPixbufTreeViewColumnappend_columnonCategoryChangedonCategorySelectedcategoryHighlightOnMapcategoryHighlightUnmapcategoryHighlightOffset_cell_data_funckb_name_cell_data_funconKeyBindingChangedr	   onEntryChangedonEntryClearedTOOLTIP_TEXTr\   ra   r   SettingsENABLED_SCHEMAsetget_strvr   sortedOLD_SETTINGS_DIRSETTINGS_DIRr   joinpathexistsoslistdirendswithallany	enumerater   popopenjsonloaditems
isinstancedictget
setdefaultr   
expandusergettextbindtextdomain
textdomainFileNotFoundError
CATEGORIESlistkeysKEYBINDINGSr`   lenKeyBindingCategoryint_name
KeyBindingparenticon	set_valuelabelcreate_pango_layoutget_pixel_sizeset_positionmaxpopulate_kb_treer   get_session_typerr   	c_managerget_c_widgetset_vexpandshow
grab_focus)Srq   pagesettingsswitchslidervbox
headingboxmainboxpaned	left_vbox
right_vbox	right_boxframe_styletooltip_textr   optionsmodeloptioncellright_scrollercategory_scrollerkb_name_scrollerentry_scroller	buttonboxpb_cell
cat_columnkb_name_cell	kb_column
entry_cellentry_columnenabled_extensionsenabled_spicesr   appletr   desklet	extensionkeyboard_spicesspice_keybindsspice_propertiesspice_typesettings_dirconfig_pathr   configsindexr   configconfig_json_idkey_nameconfig_file_configkeyvalr   r   
propertiesmetadata	json_datacategory_labelr8   	cat_labelinstance_numrL  binding_keybinding_valuesbinding_labelbinding_schemabinding_category
cat_lookupcatelembindingcategory	cat_iterslongest_cat_labellayoutw__widget	cheat_boxsS                                                                                      rN   on_module_selectedzModule.on_module_selected	  s   {{+,"//DMMMM$$T]]%8%89  >D'',8HMM**41X;G$Q':%;=hjrsFV$#Ao$68celnopwnxz{  }C  {D  FI  KO  \a  bF##F,WYab#Ao$68cevxy  {A  yB  DE  FL  DM  OQ  SW  ]a  ns  }A  BF##F,WYab''-(89H$Q';%<>^`noFV$#An$57WYlnopvnwyz  |B  zC  EH  JN  [`  jn  oF##F,Ln]
 77s'?'?@D!!!$QMM**4anMMM''(DdF]F]^S__%=%=qAJggkk#//"<"<a@G!!'4q9		a  1O  /P  !Q  SX  Z_  ab  cIICOO,F,FGE!!$'COO$<$<a@IS__%=%=qAJ"ww{{3??+E+EqIDJJy!COO,D,DEIJJy! $'99a@Z>[#\D (,(<(<(D(DYPTPiPi(jD% $'99;D   001B1BC..@@BK!!&)6A6N6NOg6h3Dd3  006%5%7D"""--cii.>.>?CHD""22@ABL""33LA<=KALD""22>&&66CCDUW[WlWlm""**>4;V;VW""**?D<W<WX  $$T%;%;< #&,,.D+4*z24GMM#s+E! %V$%))%0'')D**47--dFA>**1-''	43Q3QR ''(<(<dD!L''(<(<dD!L%%d&9&95%K  !1!15%C //33D$?N%%cnn&>&>@T@TUz*  tQ? # 2 2 6 6tT B--cnn.?.?@"1155dDA,,S^^->->? //33D$?N**3>>+<+<=!!"2D$B!!.$a@))*>DLLuBODM<<e2NDL!llbQDOLL  $2O2OPLL  !79P9PQLL  !4d6M6MNLL  (B(BCLL  !143M3MNLL  $*F*FGLL  !2D4P4PQLL  D,D,DEOO##$4d6P6PQOO##$5t7S7ST  !2D$B!!$--0(()A)A3>>C[C[\  .''(<(<cnn>V>VWt/%%cnn&:&:CNN<T<TU))#//*D*DEI%(ZZ%>%>qAV?W%XD"""**9d6S6ST(+

(A(A!D\B](^D%%%--i9Y9YZ%%22;F  !7!7qI  !:!:E5!L	5%;udD!4 ]]3+.+13DN "%s/5"7D  //D<N<NODMMM**4+E+EF"}}S1D'')Dq!$,,.G++AlO<J!!'51!!$-$$Wk1=$$T615$$Q'##K5MM''
3MM!!"2D4J4JKMM!!"8$:Q:QRMM!!"5t7N7NOMM!!/43I3IJMM!!%)D)DEMM!!"2D4O4OPMM!!'4+F+FGMM!!)T-F-FG//1L&&r2.**1-A+BLWXYI((t7R7RS##B'LL&&y1LL  !143K3KL/@J$$R,~t/B/BDDTDTU0C0CTEUEUV##J5--a0C.Dj_`aL  D,F,FG&&r*OO)),7OO,,-C-P-PQ$(D! DO||''7H!$ UN#,,->? 8 s+A.""FI#678 %--.@A :"..-a0""GZ#89: &../CD >	"&&y1""I|#<=> %^4ON! / u%5|$D L"&--e"DK{{;/.0jj.E"]T[I\1"]"]""R'"RRWZ  [K  CJ  [K  XK09'0B 7u',{{7';A'>'F'F'H$+KK$67 '. F*.--V*LK"(,,w"7":C;>;;=%#'7eH!%kG!D *.))K*@07 !HC'1#t'<T`A`(8(C(CHb(QRW_qRq(8(B;(OMPQ\M](8(B6(JMR(8(B6(J(6(A(A(B(O(6x(@(K(KCQS(TILQ^I_adahahipaqawawx|a}H~x(@(E! 	4 $2#7#7#9 /Ox"[[]
s#%5e%<=
(/7"d* 4UG1TF.Q\cd >hp$(IIh$7	)*9V+<)=> > 77--c2D**4D69M1NO&&t,!!TF*A%$~"^ipq Su}(,		((;I-4__Qy?P=Q-RNS
 2@dI%%y$$
&ST#$LZ^A..2@dI%%y$$&MN#$LjMa~,>>E%%ua~.FdT^&_`#$LZ^A..jMa~,>>E%%ua~.FdT^&_` A%L&6u&=k&Jd&RUX\
3;>>3C O/K&$.()$~/B/B/D*Ea*H(I!ww11#6..tv=Q5RS**40(/^=P=P=R8STU8V(W%5e%<V%DNGJ$q1A0B'CPT$&&~{Tdfp'qr@ND++,<=OI/Ob J! a%(V
3q6"s8a<q6D&&'9#a&#a&#a&RUVWRXZ^'_`a ' g''2271:z'RS*?UV $ gH((GAJ6#w<!+#*1:D Z
GAJPQ
T[\]T^`d%efgg I # OO 
737>>3H3H3NIh//037>>3H3HS[SbSbIc3dIh//0==NN,,Yx7H7H-I1hmm\((83D3D)Eq(..Y((83D3D)Eq(Sx~~&->)??(0%
7 ]]667HIF**,FAs1c{+MM##DNN3LL""4==1OO%%d&6&67!!#OOJdA677s'?'?@D!!!$Q$$&)3##..tY)M"!]]66@@MMhWF  #COO,D,Da HI((tQ?))%0KKMOOItT1=  ++-i Z #^ &> >S S - ! !l"!Fs   Q7Ax-RAx-UAAx2	V Ax2	V6BAx2	Z4&Ax?\8Ay];Ay^
Ayu2Ay* x2Ax<x?Ay		yAy	yAyy
Ay'y&Ay'y*Ay0Nc                     |j                         dk(  r5| j                  j                          | j                  j                          y y )NrX   )get_visible_child_namerf   rW  rk   )rq   r   pspecdatas       rN   r   zModule.stack_page_changed  s:    '')[8MM$$&  ++- 9rP   c                     t         D ]#  }t        |d      s|j                  |z  |k(  s# y  | j                  r| j	                          |j                         j                         \  }}|r|j                  |d      nd }|r0| j                  dk(  r!| j                  d        | j                          |r|j                  s| j                          y | j                  rNt        t        |j                              t        t        | j                              k(  r| j                          y t        |d      r7|j                   t"        j$                  j&                  k7  r| j                          |j                  | _        | j                          y )Nstater   r   r   )MASKShasattrr  r^   r	  get_selectionget_selected	get_valuero   r   r  r  r  r]   r@   iterr   r   	EventTypeFOCUS_CHANGE)rq   treeeventmaskrf  	tree_iterr  s          rN   r  zModule.onCategorySelected  sC    	Dug&5;;+=+E	
 %%((*--/<<>y4=5??9a04**j8''-'')x22'') &&4X5H5H0I+JdSWX\XsXsStNu+u'')5&!ejjCMM4N4N&N'')&.&9&9# 	##%rP   c                    | j                   j                  | j                         | j                   j                  d       | j                   j	                  | j                         |j                         r|j                         j                         \  }}|r]|j                  |d      }|| _        | j                  j                          | j                  j                  d|j                  dk(         y y y )NrY   r   r   r   )rk   handler_blockrl   set_texthandler_unblockr  r  r  r\   rd   refilterrn   r   rG  )rq   r  
categoriesr  r  s        rN   r  zModule.onCategoryChanged  s    **4+D+DE%%b),,T-F-FG$($6$6$8$E$E$G!J	%//	1=(0%&&())66{HDUDUYaDab   rP   c                     | j                   j                         j                          | j                          d | _        d | _        d | _        | j                  j                          y rI   )	rf   r  unselect_allr	  r\   r]   r^   rd   r  )rq   entryr  s      rN   r   zModule.on_kb_search_changed  sO    ##%224$$& $&*#%)" rP   c                 >   | j                   j                         }| j                   j                         }||   d   | _        | j                  dk(  r`| j	                  d        | j
                  j                          | j                  j                          | j                  j                          n| j                  j                  | j                         | j                  j                  d       | j                  j                  | j                         | j                  j                          | j                  j                          | j                  j                          | j
                  j                          | j!                          | j#                          y )Nr   rX   rY   )r   	get_model
get_activero   r   r   hider   rk   rV  r  rl   r  r  rd   r  r	  r  )rq   r  rf  rg  s       rN   r   z Module.on_kb_search_type_changed  s3   ##--/$$//1"6]1-,''-  %%'""'')  %%'  ..t/H/HI  ))"-  001J1JKMM""$  %%'""'')  %%'$$&##%rP   c                    | j                   j                          d | _        | j                  j	                  | j
                         | j                  j                  d       | j                  j                  | j
                         | j                  D ]:  }|j                  D ])  }| j                   j                  |j                  |f       + < | j                          y NrY   )rc   clearr\   rk   r  rl   r  r  ra   keybindingsrL   rL  loadCustoms)rq   r  r   s      rN   rQ  zModule.populate_kb_tree  s      " $**4+D+DE%%b),,T-F-FG 	JH&22 J
"")):+;+;Z*HIJ	J 	rP   c                    |j                  |d      }|r| j                  j                         s| j                  j	                         r}t        | j                  |j                           }|j                  j                  d      ^}}	|	rd|	d    nd}
t        |j                        }d| |
 d| }|j                  d|       y |j                  d	|j                         y )
Nr   rZ   r   r   rY   z!<span font_weight='ultra-light'>(z	)</span> markupr   )r  rk   get_textr   get_accel_stringr   r`   r  r   rL  r   )rq   columnrh  rf  r  r  r  r  r  numr  rL  r  s                rN   r  zModule.kb_name_cell_data_func  s    //)Q/t++446$:P:P:a:a:cd55g6F6FGHH''--c2HB"%Ac!fX,2C7==)E8
3%yQVPWXFh/fgmm4rP   c                    | j                   dk(  r| j                  s| j                  j                         sy| j                  j                  |d      }| j                  j                         j                         j                         }|r*||j                  j                         j                         v S | j                  r:t        | j                  d      r#|j                  | j                  j                  k(  S y y | j                  s| j                  j                         sy| j                  j                  |d      }| j                  j                         }|rC|j                  D cg c]  }t        j                   |       }}t        j                   |      |v S | j                  r:t        | j                  d      r#|j                  | j                  j                  k(  S y y c c}w )NrX   Fr   rG  )ro   r\   rk   r  rc   r  r)   striprL  r  r  rG  r   r  entriesr   accelerator_parse_with_keycode)rq   rf  r  r  r   r:   r  r  s           rN   r  zModule.kb_store_visible_func  s   ,((1E1E1N1N1P++55iCJ))224::<BBDF!1!1!7!7!9!?!?!AAA$$1F1F
)S!**d.C.C.L.LLL *T$ ((1G1G1X1X1Z++55iCJ++<<>FR\RdRde3==eDee99&AWLL$$1F1F
)S!**d.C.C.L.LLL *T$ fs   )G%c           	         | j                   j                         }|rf| j                   j                  |d      }|j                  dk(  r| j                   j	                  |      snJ| j                   j                  |      }|rft        j                  j                  t              }|j                  d      }|D ]  }|t        k(  rt        dz   |z   dz   }t        j                  j                  t        |      }t        ||j!                  d      |j!                  d      |j                  d            }| j                   j#                  |j$                  |f       | j&                  j)                  dt+        d              y )	Nr   r   custom-listr   r   commandr  r   )rc   get_iter_firstr  r  rK   	iter_nextr   r$  r   CUSTOM_KEYS_PARENT_SCHEMAr'  rJ   CUSTOM_KEYS_BASENAMEnew_with_pathCUSTOM_KEYS_SCHEMACustomKeyBinding
get_stringrL   rL  r`   r;  rZ   )	rq   r  r   rI  rM   r  custom_pathschema	custom_kbs	            rN   r  zModule.loadCustoms  sS   &&557	 ++55iCJ""h.))00;**44Y?I  !!";<oom4  	PE**.s258<K\\//0BKPF()/):):6)B)/):):9)E)/)CEI %%y	&BC##..x;M9NO	PrP   c                 N   | j                   j                          |j                         r|j                         j                         \  }}|r&| j                  dk(  r| j
                  j                  rn|r| j                  dk(  r| j                  r| j
                  j                  r| j                  | j
                  j                  k7  r| j                  r0| j
                  j                  j                  d| j                         | j
                  j                  | _        | j
                  j                  j                  d        d| j
                  _        | j
                  j                          |ro|j                  |d      }|j                  D ]$  }|dk7  s	| j                   j!                  |f       & | j"                  j                  dt%        |t&                     | j                  dk(  r3| j
                  j                  r| j
                  j                  | _        y y y y )Nr   r   rY   r   	_invalid_r   )re   r  r  r  ro   r   r   rp   ri   r   r   rj   rK  
load_modelr  r  rL   rn   r8  r  )rq   r  r  r  r   r  s         rN   r   zModule.onKeyBindingChanged%  s    %)%7%7%9%F%F%H"KT//:=$BXBXBeBet11Z?DDZDZ_c_u_u  `C  `C))T-C-C-P-PP''..>>KKL]_c_t_tu-1-C-C-P-PD***::DDTJ:<D**7**557(229a@
'// :E+((//9: ))66{Jz[kDlm!!Z/D4J4J4W4W)-)?)?)L)L& 5X/)  rP   c                    | j                   j                         j                         \  }}|r|j                  |d      }| j                  D ]  }	|	j
                  D ]  }
|
j                  D ]  }d}t        j                  |      t        j                  |      k(  rd}|s6|
j                  j                  k7  sPt        j                  d t        j                  j                  t        j                  j                  t        j                  j                   d       }|j#                  dd       t%        d      }|t%        d      z  }|t%        d      z  }|j'                  |t)        |      t)        |
j                        t)        |j                        d	z         |j+                          |j-                         }|j/                          |t        j0                  j2                  k(  r-|
j5                  |
j                  j7                  |      d           y    j5                  t9        |      |       | j;                  | j                          | j<                  j                         j?                  |       y )
Nr   FTi  r   zUThis key combination, <b>%(combination)s</b> is currently in use by <b>%(old)s</b>.  zHIf you continue, the combination will be reassigned to <b>%(new)s</b>.

z,Do you want to continue with this operation?)combinationoldr   ) rg   r  r  r  ra   r  r  r   r  rL  MessageDialogDialogFlagsDESTROY_WITH_PARENTMessageTypeQUESTIONButtonsTypeYES_NOset_default_sizerZ   
set_markupr   show_allrunr   ResponseTypeYES
setBindingr  intr   rh   select_path)rq   rh  r   r   accel_labelre   r  kb_itercurrent_keybindingr  r   r  founddialogmsgresponses                   rN   r!  zModule.onEntryChanged?  s!   #||99;HHJW!,!6!6w!B  	#H&22 #
'// #E!E99,G3KmKmnsKtt $!1!15G5M5M!M!$!2!2436??3V3V36??3K3K36??3I3I37	"9
 //S9 wxq!mnnq!OPP))#{@S\bcmcscs\t  ~D  EW  E]  E]  ~^  1_  +_  `)#)::<(#s'7'7';';;&11*2D2D2J2J52QSWX"-##	#2 	%%c$i>  .%%'33D9rP   c                 @   | j                   j                         j                         \  }}|r|j                  |d      }j	                  t        |      d        | j                  | j                          | j                  j                         j                  |       y )Nr   )	rg   r  r  r  r  r  r   rh   r  )rq   rh  r   re   r  r  r  s          rN   r"  zModule.onEntryClearedb  sy    #||99;HHJW!,!6!6w!B%%c$i6  .%%'33D9rP   c                    | j                   r&| j                  j                  j                  dd        | j                  j                          d | _        | j                  j                         j                          | j                          y )Nr   )ri   r   r   r   rd   r  r\   rf   r  r  r
  )rq   rh  r   r   s       rN   r   zModule.onSearchBindingChangedj  sf    ""22??@QSWX  $##%224  "rP   c                 P   | j                   r0| j                  j                  j                  d| j                         | j                  j                  j                  d        d| j                  _        | j                  j                          | j                  j                          y )Nr   rY   )
ri   r   r   r   rj   rK  r   r  rd   r  )rq   rh  s     rN   r   zModule.onSearchBindingClearedr  sy    ""22??@QSWShShi..88>.0+))+ rP   c           	         t        d      }|j                          |j                         }|t        j                  j
                  t        j                  j                  fv r|j                          y t        j                  j                  t              }|j                  d      }g }|D ]6  }|t        k(  r|j                  t        |j!                  dd                   8 |j#                          d}	 ||v r|dz  }nndt%        |      z   }	|j                  |	       t'        |       |j)                  d|       t*        dz   t%        |      z   dz   }
t        j                  j-                  t.        |
      }|j1                  d	|j2                  j5                                |j1                  d
|j6                  j5                                |j)                  dd       | j9                          | j:                  j=                          t?        | j@                        D ]W  \  }}|d   jB                  dk(  s| jD                  jG                  t%        |      | jD                  jI                  d      d       Y t?        | j:                        D ]e  \  }}|d   |j2                  j5                         k(  s'| jJ                  jG                  t%        |      | jJ                  jI                  d      d       g |j                          y )NFr  r   rY   r   r   z/customr   r   r  r   r   )&AddCustomDialogr  r  r   r  CANCELDELETE_EVENTr   r   r$  r   r  r'  rJ   rL   r  replacesortr   rO   set_strvr  r  r  
set_string
name_entryr  command_entryr  rd   r  r2  rb   rG  rf   
set_cursor
get_columnrg   )rq   buttonr  r  rI  array	num_arrayr  inew_strnew_path
new_schemar  r  r   s                  rN   r  zModule.onAddCustomButtonClickedz  su    '::<((//1A1A1N1NOONN!!";<.	 	?E**Sx!<=>		?
 	I~Q	  SV#W&u-')3c!f<sB\\//0BHM
ff&7&7&@&@&BCi)=)=)F)F)HIIr* #DNN3 	YJE31v(*((UT]]5M5Ma5PRWX	Y "+4==!9 	WE:!} 1 1 : : <<''E
DLL4K4KA4NPUV	W 	rP   c                 4   | j                   j                         j                         \  }}|r@|j                  |d      }t        dz   |j
                  z   dz   }t        j                  j                  t        |      }|j                          |j                  d       |j                  d       |j                  d       |j                          t        j                  j                          t        j                  t              }|j                  d      }d}	|D ]  }
|j
                  |
k(  sd}	 n |	r8|j!                  |j
                         t#        |       |j%                  d|       | j'                          | j(                  j+                          y )	Nr   r   r   r  r  r  FT)rg   r  r  r  r  r   r   r$  r  r  ry   resetapplysyncr  r'  rK   rO   r  r  rd   r  )rq   r  r  r  r   r  custom_schemaparent_settingsr  existingr  s              rN   r  z"Module.onRemoveCustomButtonClicked  sH   !%!;!;!=!J!J!LY$..y!<J.4zFLKLL667I;WM!'	*	*!LL!ll+DEO#,,];EH ??e+#H Z__-'.((> rP   c                    |j                         j                         \  }}|r|j                  |d      }t        |t              ry t        d      }|j                  j                  |j                         |j                  j                  |j                         |j                          |j                         }|t        j                  j                  k7  r|j!                          y |j                  j#                         |_        |j                  j#                         |_
        |j%                          t'        | j(                        D ]e  \  }	}|d   |j                  j#                         k(  s'| j*                  j-                  t/        |	      | j*                  j1                  d      d       g |j!                          | j3                          | j(                  j5                          y y )Nr   Tr   F)r  r  r  r8  rH  r   r  r  rL  r  actionr  r  r   r  OKr   r  writeSettingsr2  rd   rg   r	  r   r
  r  r  )
rq   kb_treeviewr  rq  r  r  r   r  r  r  s
             rN   r  zModule.onCustomKeyBindingEdited  s   !,!:!:!<!I!I!KY$..y!<J*j1$T*F&&z'7'78  ))**;*;<OOzz|H3++... %0099;J & 4 4 = = ?J$$&%.t}}%= [!za=F$5$5$>$>$@@LL++CJ8O8OPQ8RTYZ[ NNMM""$1 rP   c                    t         D ]#  }t        |d      s|j                  |z  |k(  s# y  |j                         j	                         \  }}|r|j                  |d      nd }| j                  r7|r5t        |d      r)| j                  |j                  k7  r| j                          d}| j                  j                         rd}|rBt        |d      r5t        | j                        D ]l  \  }}	|	d   j                  |j                  k(  s#|	d   j                  r3| j                   j#                  t%        j&                  t)        |            d d        n | j*                  D ]  }	|	j                  |j                  k(  s| j-                  | j                  j/                         |j                        }
| j                  j1                  |
      }| j                   j3                  |       | j                   j#                  |        n |rt        |d      r|j                  r| j4                  s|j                  | _        | j                  rR| j                  |j                  k(  r9|r'|j6                  t8        j:                  j<                  k7  s|j>                  dk7  ry |j                  | _        | jA                          |r|s| jB                  jD                  r| jG                  d        y tI        |tJ              ry |r|j6                  t8        j:                  j<                  k7  s|j>                  dk7  ry |j>                  }|jL                  }|jO                  tQ        |jR                        tQ        |jT                              }|rN|^}}}|jW                          |j#                  ||d	       n%|j1                  |      }d	}d	}|jW                          t%        jX                         }|j[                  |d        t%        j\                  t_        d
            }|ja                          |jc                  |       |je                  d| jf                  |       |ji                  d d d d ||       yy )Nr  r   r  FTr  r   r   r   zReset to defaultactivate)5r  r  r  r  r  r  r^   r  r	  rk   r  r2  rb   rG  r  rI  rf   r	  r   TreePathr   ra   recurseCatTreer  get_pathexpand_to_pathr\   r   r   r  BUTTON_RELEASEr  r  r   r   r   r8  r  timeget_path_at_posr  r   yrW  Menuattach_to_widgetMenuItemrZ   rV  rL   r   onResetToDefaultpopup)rq   r  r  r  rf  r  r  search_input_textr  r  cat_iter_pathr  
event_timeinfor   colr  r,  popup_reset_items                       rN   r  zModule.onContextMenuPopup  s    	Dug&5;;+=+E	  --/<<>y3<%//)Q/$%%'gg|6TY]YsYsw~  xJ  xJ  ZJ((*!((* $ww
3#,T^^#< xA;''7+;+;;#A;--00c%j1I4QVW	 !% H((G,<,<<#'#6#6t~~7T7T7VX_XhXh#i $ 7 7 A44U;007 ww5':L:L(((/(:(:%))d.H.HGL^L^.^UZZ3==+G+GG5<<[\K\)0););D&&&( D$:$:$G$G++D1'#34::!=!==QRAR"ZZ
++CL#egg,G%)ND#OO%OOD#q1~~i0
!HHJE""4."||A.@,AB!!#LL)*$$Z1F1FPKKdD$
C= rP   c                 b   d }| j                   j                         }|s|r|j                  |d      j                  }||k(  r|}	 |S | j                  j                  |      r-| j                  j                  |      }| j                  ||      }| j                  j                  |      }|s|r|S )Nr   )	rf   r  r  rG  rb   iter_has_childiter_childrenr!  r  )rq   r  r  resultrf  category_name
child_iters          rN   r!  zModule.recurseCatTree-  s    '')Y!OOIq9BBM 00"
 	 ~~,,Y7!^^99)D
,,Z9IJ00;I Y rP   c                 Z    |j                          | j                  | j                         y rI   )resetDefaultsr   rg   )rq   r,  r   s      rN   r+  zModule.onResetToDefault;  s       "  .rP   c                    | j                   sy | j                   rt        t        | j                   j                                     j	                  dd      rit        t        | j                               }|j                         ^}}|r	d|d    dn|}t        j                  dd||dgt        j                  d       y y y )	Nr   F'r   /usr/bin/cinnamon-dbus-commandhighlightXletTruestdoutcheck	r]   r@   r  valuesr:  r   
subprocessr  DEVNULL)rq   argshighlight_on_uuidr  s        rN   r  zModule.categoryHighlightOnMap?  s    **&&4T5P5P5W5W5Y0Z+[+_+_`kmr+sT%@%@ ABL&,,.KEC#&Ac!fXQ-ECNN<o!30","4"4EC	 ,t&rP   c                 h   | j                   rt        t        | j                   j                                     j	                  dd      rit        t        | j                               }|j                         ^}}|r	d|d    dn|}t        j                  dd||dgt        j                  d       y y y )	Nr   Fr=  r   r>  r?  FalserA  rD  )rq   rH  highlight_offrJ  r  s        rN   r  zModule.categoryHighlightUnmapL  s    &&4T5P5P5W5W5Y0Z+[+_+_`kmr+s d&A&A!BCM'--/KEC#&Ac!fXQ-ECNN<o!31","4"4EC	 ,t&rP   c                 2    | j                          d | _        y rI   )r  r]   rq   rH  s     rN   r  zModule.categoryHighlightOffV  s    ##%&*#rP   c                     | j                   rU| j                   j                         ^}}|r	d|d    dn|}t        j                  dd||dgt        j                  d       y y )Nr=  r   r>  r?  r@  FrA  r^   r   rF  r  rG  rq   rH  rJ  r  s       rN   r  zModule.bindingHighlightOnMap\  sf    %%44::<KEC#&Ac!fXQ-ECNN<o!30","4"4EC &rP   c                     | j                   rU| j                   j                         ^}}|r	d|d    dn|}t        j                  dd||dgt        j                  d       y y )Nr=  r   r>  r?  rL  FrA  rQ  rR  s       rN   r	  zModule.bindingHighlightOnUnmape  sf    %%44::<KEC#&Ac!fXQ-ECNN<o!31","4"4EC &rP   c                 2    | j                          d | _        y rI   )r	  r^   rO  s     rN   r
  zModule.bindingHighlightOffn  s    $$&%)"rP   rI   )#__name__
__module____qualname__rZ   commentr   r  rt   r  r   r  r  r   r   rQ  r  r  r  r   r!  r"  r   r   r  r  r  r  r!  r+  r  r  r  r  r	  r
  r  rP   rN   rR   rR      s    89GDH$4u.n.&@c!&,
5M6P>M4!:F:#!0d!<%8EN/CC+CC*rP   rR   c                        e Zd ZddZd Zd Zy)rF  Nc                 X    || _         || _        || _        || _        || _        g | _        y rI   )rL  rI  rJ  rG  r  r  )rq   rL  rG  rI  rJ  r  s         rN   rt   zKeyBindingCategory.__init__v  s-    
	 $rP   c                 :    | j                   j                  |       y rI   )r  rL   )rq   r   s     rN   r   zKeyBindingCategory.add~  s    
+rP   c                 "    | j                   d d = y rI   )r  rq   s    rN   r  zKeyBindingCategory.clear  s    QrP   rI   )rU  rV  rW  rt   r   r  r  rP   rN   rF  rF  u  s    , rP   rF  c                   8    e Zd Zd	dZd Zd Zd Zd Zd Zd Z	y)
rH  Nc                     || _         || _        || _        || _        g | _        d|vrt
        j                  j                  |      n|| _        || _	        | j                          y Nr   )r  r  rL  r  r  r   r$  r   rY  r  loadSettings)rq   rL  r  r  r  r  s         rN   rt   zKeyBinding.__init__  sW     
47v4E((06$rP   c                     | j                   d d = d| j                  vr:| j                  | j                  j                  | j                              | _         y | j                         | _         y r`  )r  rY  	get_arrayr'  r  getConfigSettingsr]  s    rN   ra  zKeyBinding.loadSettings  sR    LLOKNVZVcVcKct~~dmm&<&<TXX&FGimii  jBrP   c                 
   t        | j                  d      5 }t        j                  |      }|| j                     d   j                  d      }t        |      dk  r|j                  d       d d d        |S # 1 sw Y   S xY w)Nr   r   r   r   r   rY   )r4  r  r5  r6  r  r   rE  rL   )rq   r  r  keybindss       rN   rd  zKeyBinding.getConfigSettings  st    $++0 	$KYY{+Fdhh'066t<H8}q #		$ 	$ s   AA88Bc                     g }|D ]  }|j                  |        t        |      dk  r |j                  d       t        |      dk  r |S Nr   rY   rL   rE  rq   	raw_arrayr7  r  s       rN   rc  zKeyBinding.get_array  sM     	!EMM% 	!&kAoMM" &kAo rP   c                 J    |r|nd| j                   |<   | j                          y r  r  r  rq   r  r  s      rN   r  zKeyBinding.setBinding       %(cbUrP   c                 .   g }| j                   D ]  }|s|j                  |        d| j                  vr'| j                  j	                  | j
                  |       y t        | j                  d      5 }t        j                  |      }d d d        |rdj                  |      nd| j
                     d<   t        | j                  dd      5 }|j                  t        j                  |d             d d d        y # 1 sw Y   vxY w# 1 sw Y   y xY w)	Nr   r   r   r   r   r  r   indent)r  rL   r  rY  r  r  r4  r5  r6  joinwritedumps)rq   r  r  r  r  s        rN   r  zKeyBinding.writeSettings  s    \\ 	$EU#	$ dkk!MM""488U3dkkG4 0;/0 =B		%(8tF488W%dkk39 @[!!$**VA">?@ @0 0
@ @s   4C?'D?DDc                    d| j                   vr&| j                  j                  | j                         nt	        | j                   d      5 }t        j                  |      }d d d        | j                     d   || j                     d<   t	        | j                   dd      5 }|j                  t        j                  |d             d d d        | j                          y # 1 sw Y   xY w# 1 sw Y   &xY w)	Nr   r   r   defaultr   r  r   rq  )
r  rY  r  r  r4  r5  r6  rt  ru  ra  )rq   r  r  s      rN   r;  zKeyBinding.resetDefaults  s    dkk!MM)dkkG4 0;/0 )/txx(8(CF488W%dkk39 @[!!$**VA">?@ 	0 0
@ @s   C$$'C0$C-0C9rI   )
rU  rV  rW  rt   ra  rd  rc  r  r  r;  r  rP   rN   rH  rH    s'    B@"rP   rH  c                   $    e Zd Zd Zd Zd Zd Zy)r  c                 h    d| _         || _        || _        || _        | j	                  |      | _        y )Nr   )r  r   rL  r  rc  r  )rq   r   rL  r  r  s        rN   rt   zCustomKeyBinding.__init__  s.     	
~~g.rP   c                     g }|D ]  }|j                  |        t        |      dk  r |j                  d       t        |      dk  r |S rh  ri  rj  s       rN   rc  zCustomKeyBinding.get_array  sK     	!EMM% 	!&kAoMM" &kAorP   c                 J    |r|nd| j                   |<   | j                          y r  rm  rn  s      rN   r  zCustomKeyBinding.setBinding  ro  rP   c                    t         dz   | j                  z   dz   }t        j                  j	                  t
        |      }|j                  d| j                         |j                  d| j                         g }| j                  D ]  }|s|j                  |        |j                  d|       t        j                  j                  t              }|j                  d      }t        |       |j                  d|       y )Nr   r   r  r  r  )r  r   r   r$  r  r  r  rL  r  r  rL   r  r   r  r'  rO   )rq   r  rY  r  r  rI  rM   s          rN   r  zCustomKeyBinding.writeSettings  s    *3.tyy8<<<--.@+NFDJJ/It{{3\\ 	$EU#	$ 	)U+ !!";<oom4,{3rP   N)rU  rV  rW  rt   rc  r  r  r  rP   rN   r  r    s    /4rP   r  c                   *     e Zd Z fdZd Zd Z xZS )r   c           
         |rt        d      }nt        d      }t        t        |   t        d      d d|t        j
                  j                  t        d      t        j
                  j                  f       | j                  dd       t        j                  j                  t        j                  j                  d      }t        j                  j                  t        j                  j                  d      }|j                  t        j                  j                  t        d	            d
d
d       |j                  t        j                  j                  t        d            d
d
d       t	        j                         | _        | j                   j#                  d| j$                         t	        j                         | _        | j&                  j#                  d| j$                         |j                  | j                   ddd       |j                  | j&                  ddd       t	        j(                  t        d      t        j*                  j,                        | _        | j.                  j#                  d| j0                         |j                  | j.                  d
d
d       | j2                  j                  |ddd       | j2                  j                  |ddd       | j%                  |        y )NUpdateAddr   r   Canceli^  r|   r   zName:FzCommand:r   TzSelect a filezfile-set)rZ   superr   rt   r   r  r  r  r  r   r   r   r   r   r   r   r  r   onEntriesChangedr  FileChooserButtonFileChooserActionOPENfile_pickeronFilePickedr\  )rq   	edit_modeok_button_labelname_boxcommand_box	__class__s        rN   rt   zAddCustomDialog.__init__  s   kOhOot-a0E.F.2.//>@P@P@S@S/0{C<L<L<S<S/U	V
 	c3'77;;s991=ggkk#//"<"<a@CIIMM!G*5ueQGsyy}}Qz];UE1M))+	4+@+@A YY[""9d.C.CDDOOT4;t114qA00?1CSEZEZE_E_`  T->->?t//qA		XtT15		[$a8d#rP   c                     | j                   j                         }| j                  j                  |j	                         j                  dd             y )Nr   z\ )r  get_filer  r  r"  r  )rq   r  files      rN   r  zAddCustomDialog.onFilePicked  s=    ((*##DMMO$;$;C$GHrP   c                     | j                   j                         j                         xr( | j                  j                         j                         }| j	                  t
        j                  j                  |       y rI   )r  r  r  r  set_response_sensitiver   r  r  )rq   r  
ok_enableds      rN   r  z AddCustomDialog.onEntriesChanged  sV    __--/557aD<N<N<W<W<Y<_<_<a
##C$4$4$7$7DrP   )rU  rV  rW  rt   r  r  __classcell__)r  s   @rN   r   r     s    $>IErP   r   )3r=  r5  r-  rF  pathlibr   htmlr   girequire_versiongi.repositoryr   r   r   KeybindingWidgetsr   r	   SettingsWidgetsr
   binr   xapp.GSettingsWidgetsinstallr  r  r  MUFFIN_KEYBINDINGS_SCHEMAMEDIA_KEYS_SCHEMACINNAMON_SCHEMAr%  r+  r8   r)  r*  ModifierTypeCONTROL_MASK	MOD1_MASK
SHIFT_MASK
SUPER_MASKr  rZ   rA  rD  rJ   rO   rR   rF  rH  r  Dialogr   r  rP   rN   <module>r     se     	    	   5%   ' ' F $  # 
/ 0 ? M I A A 4 4==.BC t}}YTYY[*DE				&	&(8(8(B(B				$	$c&6&6&A&A	C y\I<de	IDIy\I<XY}IDIIDI 0IDIIDI|_LOL	LDIx[H<PQz]HDI"#LHDI{^K<TUG<UV|_GDIO<_`H<UVy\I	DAx[8dZ@-
2\ )*,EGaclm\ ,-/HJbdmn	\
 ~1>9M\ /9E\ #$&?AQS\]\ -.0IKdfop\ 235NP_ajk\ <=?XZrt}~\ ;<>WYgirs\ EFHacz  }F  G\ |_/1CYO\ 1KYW\" )*O=SU^_#\$ -.A[]fg%\( 4j)L)\* 6iP+\, 4j)L-\. ~17IF/\0  9;QS\]1\2 ~17IF3\4 ~17IF5\6 "#%>@RT]^7\8  !#<>QS\]9\: 8/9U;\<  9>9U=\> 013LNhjst?\@ 57I9UA\B 57I9UC\D %&(ACXZcdE\F '(*CE\^ghG\J 2NNSK\L }0,OM\N  !#<>NP^_O\P #$&?ATVdeQ\R "#%>@SUcdS\T #$&?ATVdeU\V "#%>@SUcdW\X "#%>@PR`aY\Z  !#<>NP^_[\\ #$&?AQSab]\^ !"$=?OQ_`_\b 35E|Tc\d 46GVe\f ~1><Pg\h 35E|Ti\l %&(ACZ\lmm\n &')BD\^noo\p '(*CE^`pqq\r '(*CE[]mns\t '(*CE]_opu\v #$&?AVXhiw\x #$&?AVXhiy\z #$&?AVXhi{\| #$&?AVXhi}\~ #$&?AVXhi\@ #$&?AVXhiA\B #$&?AVXhiC\D #$&?AVXhiE\F #$&?AVXhiG\H $%'@BXZjkI\J $%'@BXZjkK\L $%'@BXZjkM\P $%'@BXZhiQ\R %&(ACZ\jkS\T %&(ACWYghU\V %&(ACY[ijW\Z !"$=?Y[gh[\\ "#%>@[]ij]\` !:<SU^_a\b !:<SU^_c\d !:<SU^_e\f !:<SU^_g\h !:<SU^_i\j !:<SU^_k\l !:<SU^_m\n !:<SU^_o\p !:<SU^_q\r  ";=UW`as\t  ";=UW`au\v  ";=UW`aw\z y\$h9{\| {^&
H=}\~ }(-B\@ y\$i:A\B {^&X>C\D -/A8LE\H %&(9;Ll[I\J 235FH^`lmK\L .lKM\N '(*;=NP\]O\P &'):<OQ]^Q\R 346GIacopS\T 9:<UWikwxU\X &')BDTV^_Y\Z 35ExP[\\ -/DhO]\^ #$&79OQYZ_\` #$&79QS[\a\b "#%68OQYZc\d *+->@SU]^e\f *+->@UW_`g\h !24ExPi\j -}hGk\l .Im\n !2IxHo\r ,j+Fs\t 0&+Fu\v .kJw\x 0';Gy\z /D{\| }(&+>}\~ x[#X{;\B }(-AC\D }(-AE\F {^&W=G\H z]%z7;I\J 0'7CK\L vY!673M\N +Wg>O\P *FG<Q\R +ZAS\T |_'9U\V wZ"GW5W\X x[#^W=Y\Z ~)?GD[\\ x[#^W=]\^ y\$ng>_\b 0,Nc\d 02E}Ue\f .0A=Qg\j y\?$7Ik\l z]O%9?Km\n %&(9>?[o\p *+->@TVefq\r /1EWs\t /1EWu\v  !#46GYw\D ! /H* H*V    C CL&4 &4R&Ecjj &ErP   