Theme Migration
Updated 628 Days AgoPublic

This page lists theme API changes/breaks. The use of must and should in this document should be interpreted identically to their uses in RFC text.



  • e/widgets/border/modal/border is used for modal dialogs; currently an alias of e/widgets/border/dialog/border
  • e/widgets/border/* now has data.item`frame_extends` which is a hint to fix input for themes which extend past the object's bounding box (ie. have negative offsets)
  • e/deskmirror/frame/*
  • e/modules/packagekit/*
  • e/comp/effects/iconify/*
  • e/desklock/pin_box
  • e/desklock/pin_button
  • e/modules/pager/* <- new pager module, previously pager16
  • e/comp/frame/* <- moved from e/comp/border/*, NOT backwards compatible. Any theme providing this group must adapt to the following changes:
    • e,state,visible,on -> e,state,visible
    • e,state,visible,off -> e,state,hidden
    • e,state,focus,on -> e,state,focused
    • e,state,focus,off -> e,state,unfocused
    • e,state,urgent,on -> e,state,urgent
    • e,state,urgent,off -> e,state,not_urgent


  • As a result of Edje 1.10 changes, any TEXT part which has text.min: 1 [0|1]; set must also have text.ellipsis: -1; set to prevent the text from ellipsizing
  • e/conf/randr/main/frame group now has e,state,refresh,[enabled|disabled] signals (source: e) to allow toggling of refresh arrow visibility
  • e/desklock/login_box now has e,state,logo,[hidden|visible] signals (source: e) to allow toggling of logo visibility
  • e/comp/screen/overlay/default theme must emit e,state,screensaver,active (source: e) after completing any animations resulting from signal e,state,screensaver,on source e
  • e/fileman/default/icon/* now has e,state,rename,[on|off] signals (source: e) to determine rename state
  • e/modules/ibar/menu theme must emit e,action,show,done (source: e) after completing any animations resulting from signal e,action,show source e
  • modules/music-control/* -> e/modules/music-control/*
  • Groups which previously used the shadow data.item to determine shadow visibility must now instead use the noshadow flag for disabling shadows; shadows are enabled by default.
  • e/modules/pager/* -> e/modules/pager_plain/*



  • e/modules/ibar/separator/default
  • e/modules/ibar/separator/horizontal
  • e/modules/ibar/menu
  • e/modules/ibar/menu/item
  • e/comp/screen/base/noeffects
  • e/comp/effects/none
  • e/comp/effects/auto/* <--these are the per-window desk flip animation styles

slated for rename due to lack of namespacing (blame @zehortigoza and possibly @lucasdemarchi):

  • modules/music-control/icon
  • modules/music-control/main
  • modules/music-control/popup


  • e/modules/systray/main group is now only a RECT for events under a single BOX with part name "box"
    • this is slated for rename to "" for proper namespacing in future; direct blame to @zehortigoza
  • e/modules/comp/* has been renamed to e/comp/*
  • e/modules/comp/$border_type has been renamed to e/comp/border/$border_type
  • e/comp/border/$border_type groups should have corresponding e/comp/border/$border_type/fast group with shorter effect durations
  • e/comp/screen/base/default and e/comp/screen/base/noeffects groups must contain a SWALLOW part "e.swallow.background" in order for wallpapers to be displayed
    • this SWALLOW part should be clipped
  • e/modules/conf_edgebindings/selection now has BOX part "" instead of SWALLOW part "e.swallow.check", alignment changed, developers should read corresponding Elementary-1.8 theme
  • e/widgets/menu/* groups must have mouse event coverage for the entire space of the group in order for menus to receive mouse events
  • e/widgets/border/* groups:
    • must clip SWALLOW part "e.swallow.client"
    • must set visibility:0 on SWALLOW part "e.swallow.client" during shaded state
    • must set mouse_events:1 for SWALLOW part "e.swallow.client"
    • must have the shadow parts in theme if shadows are desired; default e/comp/* groups no longer provides window shadows
    • should set data.item "shadow" "1" if they provide a shadow
    • should have clipper for shadow parts to use during window shading
      • shadow display is now enabled with signal "e,state,shadow,on" and disabled with signal "e,state,shadow,off"
    • must have event coverage for entire group
    • must set repeat_events:1 for event parts
    • must have pixel-perfect part positioning with no gaps between parts
  • e/widgets/button group can now receive "e,state,focused" and "e,state,unfocused" signals to indicate focus state
  • e/modules/ibar/icon group now receives "e,state,on" and "e,state,off" signals to control application launch indicator parts
Last Author